主应用代码:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center" verticalAlign="middle" creationComplete="initApp()"> <mx:Script> <!--[CDATA[ import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; private function initApp():void { //Initialize XML load service. sevBaseTable.send(); } // Load BaseTable.xml private function loadBaseTableHandler(event:ResultEvent):void { connManager.openConnection(dbConnection); createDbObj.createTableArray=event.result.tables.table; createDbObj.createDatabaseObjects(dbConnection); connManager.closeConnection(dbConnection); Debug.log("Load BaseTable.xml complete!"); } ]]--> </mx:Script> <mx:HTTPService id="sevBaseTable" url="data/BaseTable.xml" result="loadBaseTableHandler(event)"/> </mx:Application>
XML文件:
BaseTable.xml
<?xml version="1.0"?> <tables> <table> <name>TRP_USERS</name> <statement>CREATE TABLE IF NOT EXISTS TRP_USERS (USER_ID INTEGER PRIMARY KEY AUTOINCREMENT,USER_NAME TEXT,PASSWORD TEXT,CREATION_DATE DATE)</statement> </table> <tables>
运行时会报错:类似空方法的错误
调试结果:
在BaseTable.xml中
添加一个<table></table>节点,则不会再报错。
猜想:可能是当xml文件解析结果只有一个节点时无法识别ArrayCollection。