<mx:XML> 태그는, 텍스트 모델로부터 XML object나 XMLNode object를 생성하기 위해(때문에) 컴파일시에 사용합니다. 이 태그에는, Flash 클래스에서는 제공되지 않는 다음과 같은 기능이 있습니다.
<child name="{textInput1.text}"/>format="xml" 속성을 사용해, E4X 형식의 XML object 대신에 종래의 XMLNode object를 생성할 수 있습니다. MXML 문장구조법
<mx:XML> 태그는, Flex 어플리케이션의 파일, 또는 MXML 컴퍼넌트의 파일에 둘 수가 있습니다. <mx:XML> 태그에는, 다른 컴퍼넌트로부터 참조하기 위한 id 속성치가 필요합니다. <mx:XML> 태그가 <mx:dataProvider> 태그의 직접적인 아이인 경우는,id 속성치는 필요 없습니다. 태그 본체는, 모든 아이 노드를 포함한 단일의 루트 노드를 가질 필요가 있습니다. <mx:XML> 태그를 MXML 컴퍼넌트의 루트 태그로 할 수 없습니다. 태그 중(안)에서 Flash XML 나 XMLNode 의 클래스 property를 지정할 수 없습니다. 이것들은, ActionScript 내에서 지정할 필요가 있습니다.
<mx:XML> 태그의 문장구조법은 다음과 같습니다.
<mx:XML id="모델 ID" format="e4x|xml"> <루트> 아이 노드 </루트> </mx:XML>
또는
<mx:XML id="모델 ID" format="e4x|xml" source="파일명" />
format property의 디폴트치 e4x 에서는, 생성되는 XML object에 "E4X" 로 알려진 ECMA-357 사양으로 정의된 XML 처리 규격이 Implements됩니다. 후방 호환성을 확보하려면 ,format property를 xml 로 설정하면 flash.xml.XMLNode 타입의 object를 생성할 수 있습니다.
source property에서는, 파일 등 데이터 모델의 외부 소스를 지정합니다. 외부 소스에는 정적 데이터 및 데이터 바인딩식을 포함할 수가 있습니다. 컴파일러는 소스의 값을 읽어내, 소스를 어플리케이션에 컴파일 합니다. source 의 값은 실행시에는 읽어내지지 않습니다.
다음의 예에서는,
<? xml version="1.0"? >
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#FFFFFF">
<mx:XML format="e4x" id="myMenuModel">
<root label="Menu">
<menuitem label="MenuItem A">
<menuitem label="SubMenuItem 1-A"/>
<menuitem label="SubMenuItem 2-A" />
</menuitem>
<menuitem label="MenuItem B"/>
<menuitem label="MenuItem C" type="check"/>
<menuitem type="separator"/>
<menuitem label="MenuItem D">
<menuitem label="SubMenuItem 1-D" type="radio" groupName="one"/>
<menuitem label="SubMenuItem 2-D" type="radio" groupName="one"/>
<menuitem label="SubMenuItem 3-D" type="radio" groupName="one"/>
</menuitem>
</root>
</mx:XML>
<mx:MenuBar id="myMenu" labelField="@label" showRoot="true">
<mx:dataProvider>
{myMenuModel}
</mx:dataProvider>
</mx:MenuBar>
</mx:Application>