使用 XML 命名空间Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本 XML 对象(或文档)中的命名空间用于标识对象所包含的数据的类型。例如,在将 XML 数据发送和提交给使用 SOAP 消息传递协议的 Web 服务时,您要在 XML 的开始标签中声明命名空间: var message:XML = <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <soap:Body xmlns:w="http://www.test.com/weather/"> <w:getWeatherResponse> <w:tempurature >78</w:tempurature> </w:getWeatherResponse> </soap:Body> </soap:Envelope>; 命名空间有一个前缀 soap 和一个定义该命名空间的 URI http://schemas.xmlsoap.org/soap/envelope/。 ActionScript 3.0 包含用于使用 XML 命名空间的命名空间类。对于上一示例中的 XML 对象,可按如下方式使用命名空间类: var soapNS:Namespace = message.namespace("soap"); trace(soapNS); // Output: http://schemas.xmlsoap.org/soap/envelope/ var wNS:Namespace = new Namespace("w", "http://www.test.com/weather/"); message.addNamespace(wNS); var encodingStyle:XMLList = message.@soapNS::encodingStyle; var body:XMLList = message.soapNS::Body; message.soapNS::Body.wNS::GetWeatherResponse.wNS::tempurature = "78"; XML 类包含下列可与命名空间一起使用的方法:addNamespace()、inScopeNamespaces()、localName()、name()、namespace()、namespaceDeclarations()、removeNamespace()、setLocalName()、setName() 和 setNamespace()。 使用 default xml namespace 指令可为 XML 对象指定默认命名空间。例如,在以下代码中,x1 和 x2 具有相同的默认命名空间: var ns1:Namespace = new Namespace("http://www.example.com/namespaces/"); default xml namespace = ns1; var x1:XML = <test1 />; var x2:XML = <test2 />; |
|