[PageOutline?]]

XMLSerializer とは

  • ActionScript? 3.0 のオブジェクトを XML に相互変換するためのライブラリ。
  • ビルドインのクラスはもちろん、カスタムクラスもサポート。型指定も再現されます。
  • as3corelib の JSON クラスをベースにしているため、とてもシンプルに使えます。
  • XML は長期的な利用を意図して、汎用的な設計に基づいています。
  • as3corelib と同等のテストを Flex Unit 4 にて行っています。
  • デシリアライズ時にチェックを厳密にするか緩和するかを設定できます(strict モード)。

ダウンロード&開発者向け

リポジトリは下記になります。

http://www.libspark.org/svn/as3/XMLSerializer/

SWCファイルはこちらから(Fat SWC) http://www.libspark.org/browser/as3/XMLSerializer/lib

ドキュメント http://www.libspark.org/svn/as3/XMLSerializer/docs/org/libspark/serialization/XMLSerializer.html

リポジトリブラウザで見るならこちら → http://www.libspark.org/browser/as3/XMLSerializer/

ソースコードをダウンロード、使用することでライセンスに同意したものとします。

使い方

シリアライズ(AS3 Object→XML)

import org.libspark.serialization.*;

var obj:Object = {foo: {foo2: {foo3: {foo4: "bar"}}}};
var xml:XML = XMLSerializer.serialize(obj);

デシリアライズ(XML→AS3 Object)

import org.libspark.serialization.*;

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load("mydata.xml");

function completeHandler(event:Event):void{
    var obj:Object = XMLSerializer.deserialize(event.target.data);
    trace(obj);
}

XML仕様

XMLのフォーマット

<XMLSerializer version="0.2.0">
  <p type="Object">
    <p name="age" type="Number">23</p>
    <p name="hasChild" type="Boolean">false</p>
    <p name="history" type="Array">
      <p index="0" type="String"><![CDATA[りんご幼稚園卒]]></p>
      <p index="1" type="String"><![CDATA[みかん小学校卒]]></p>
      <p index="2" type="String"><![CDATA[ひまわり中学校卒]]></p>
    </p>
    <p name="name" type="String"><![CDATA[Moja]]></p>
    <p name="now" type="flash.geom::Point">
      <p name="x" type="Number">100</p>
      <p name="y" type="Number">100</p>
    </p>
  </p>
</XMLSerializer>

元のデータ

{
	name : "Moja",
	age : 23,
	history : [
		"りんご幼稚園卒",
		"みかん小学校卒",
		"ひまわり中学校卒",
	],
	now : new Point(100,100),
	hasChild : false
}

おしらせ

  • 2010/7/29 SparkProject? にプロジェクト設立。バージョン 0.1 をコミット。
  • 2010/11/10 バージョン 0.2 をコミット。strict モードの追加、エレメント名の短縮(容量削減のため)。

ライセンス

XMLSerializer のソースコードは new BSD License とします。 これは、改変元とした as3corelib がそのライセンスを適用していたためです。

作った人