Uso de espaços para nomes XML

Os espaços para nomes em um objeto (ou documento) XML identificam o tipo de dados contido no objeto. Por exemplo, ao enviar e fornecer dados XML para um serviço da Web que usa o protocolo SOAP, você declara o espaço para nomes na tag de abertura do 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>;

O espaço para nomes tem um prefixo, soap, e uma URI que define o espaço para nomes, http://schemas.xmlsoap.org/soap/envelope/.

O ActionScript 3.0 inclui a classe Namespace para trabalhar com espaços para nomes XML. Para o objeto XML do exemplo anterior, você pode usar a classe Namespace do seguinte modo:

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";

A classe XML inclui os seguintes métodos para trabalhar com espaços para nomes: addNamespace(), inScopeNamespaces(), localName(), name(), namespace(), namespaceDeclarations(), removeNamespace(), setLocalName(), setName() e setNamespace().

A diretiva de espaço para nomes XML padrão permite atribuir um espaço para nomes padrão para objetos XML. Por exemplo, a seguir, x1 e x2 têm o mesmo espaço para nomes padrão:

var ns1:Namespace = new Namespace("http://www.example.com/namespaces/"); 
default xml namespace = ns1; 
var x1:XML = <test1 />; 
var x2:XML = <test2 />;