package { import flash.display.Sprite; import flash.text.TextField; import mx.utils.ObjectProxy; import mx.utils.object_proxy; import mx.rpc.xml.XMLEncoder; import mx.rpc.xml.Schema; import mx.rpc.xml.SchemaManager; [SWF(width="550", height="400", backgroundColor="#FFFFFF")] public class TypedObjectProxyTest extends Sprite { public function TypedObjectProxyTest() { super(); init(); run(); } public function run():void { var emp:Object = {firstName:"John", lastName:"Smith", employeeId:1000}; var employee:ObjectProxy = new ObjectProxy(emp); var employeeType:QName = new QName("urn:MyWebService", "Employee"); employee.object_proxy::type = employeeType; var record:Object = {person:employee}; var xmlEncoder:XMLEncoder = new XMLEncoder(); xmlEncoder.schemaManager = schemaManager; var recordType:QName = new QName("urn:MyWebService", "Record"); var result:XMLList = xmlEncoder.encode(record, recordType); trace(result.toXMLString()); tf.text = result.toXMLString(); } private function init():void { tf = new TextField(); tf.x = 50; tf.y = 50; tf.width = 400; tf.height = 300; tf.multiline = true; addChild(tf); var schemaXML:XML = ; schemaManager = new SchemaManager(); var schema:Schema = new Schema(schemaXML); schemaManager.addSchema(schema); } private var schemaManager:SchemaManager; private var tf:TextField; } }