Verwenden von XML-Namespaces

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Namespaces in einem XML-Objekt (oder XML-Dokument) bezeichnen den Typ der Daten, die das Objekt enthält. Beispielsweise deklarieren Sie beim Senden von XML-Daten an einen Webserver, auf dem das SOAP-Nachrichtenprotokoll verwendet wird, den Namespace im öffnenden XML-Tag:

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

Der Namespace verfügt über ein Präfix ( soap ) und einen URI, der den Namespace definiert ( http://schemas.xmlsoap.org/soap/envelope/ ).

ActionScript 3.0 enthält die Namespace-Klasse für die Bearbeitung von XML-Namespaces. Bei dem XML-Objekt im vorangegangenen Beispiel können Sie die Namespace-Klasse wie folgt einsetzen:

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

Die XML-Klasse enthält die folgenden Methoden für die Verwendung mit Namespaces: addNamespace() , inScopeNamespaces() , localName() , name() , namespace() , namespaceDeclarations() , removeNamespace() , setLocalName() , setName() und setNamespace() .

Mit der default xml namespace -Direktive können Sie einen Standardnamespace für XML-Objekte zuweisen. Im folgenden Beispiel haben x1 und x2 denselben Standardnamespace:

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