ГлавнаяСправка по использованию серверного ActionScriptКласс XML › XML.namespaceURI

XML.namespaceURI

my_xml.namespaceURI

Только чтение; Если у узла XML есть префикс, namespaceURI является значением определения xmlns для этого префикса (URI), который обычно называют URI области имен. Определение xmlns содержится в текущем узле или в узле, расположенном выше в иерархии XML.

Если у узла XML нет префикса, значение свойства namespaceURI зависит от того, определена ли области имен по умолчанию (как в примере xmlns="http://www.example.com/"). Если существует область имен по умолчанию, значение свойства namespaceURI является значением области имен по умолчанию. Если области имен по умолчанию не существует, свойство namespaceURI для этого узла будет пустой строкой (“”).

Можно использовать метод XML.getNamespaceForPrefix() для определения области имен, ассоциируемой с конкретным префиксом. Свойство namespaceURI возвращает префикс, ассоциируемый с именем узла.

Доступно с версии

Flash Media Server 2

Пример использования

В следующем примере показано как на свойство namespaceURI влияет использование префикса. XML файл с именем SoapSample.xml использованный в этом примере содержит следующие тэги:

<?xml version="1.0"?> 
    <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope">  
        <soap:Body xmlns:w="http://www.example.com/weather"> 
            <w:GetTemperature> 
                <w:City>San Francisco</w:City> 
            </w:GetTemperature> 
        </soap:Body> 
    </soap:Envelope>

Исходный текст Server-Side
ActionScript Communication File (файл ASC) содержит следующий код (заметьте, что выводимые строки помещены в комментарии). Для tempNode,
который представляет узел w:GetTemperature, значение namespaceURI определенно в тэге soap:Body.
Для soapBodyNode, который представляет узел soap:Body, значение namespaceURI обусловлено определением префикса soap в узле находящемся выше него, а не так как в определении префикса w для узла soap:Body содержащегося в нем.

var xmlDoc = new XML(); 
xmlDoc.load("http://www.example.com/SoapSample.xml"); 
xmlDoc.ignoreWhite = true; 
xmlDoc.onLoad = function(success:Boolean) { 
    var tempNode:XMLNode = xmlDoc.childNodes[0].childNodes[0].childNodes[0]; 
    trace("w:GetTemperature namespaceURI: " + tempNode.namespaceURI);  
    // Выводит: ... http://www.example.com/weather 
 
    trace("w:GetTemperature soap namespace: " + tempNode.getNamespaceForPrefix("soap"));  
    // Выводит: ... http://www.w3.org/2001/12/soap-envelope 
 
    var soapBodyNode = xmlDoc.childNodes[0].childNodes[0]; 
    trace("soap:Envelope namespaceURI: " + soapBodyNode.namespaceURI); 
    // Выводит: ... http://www.w3.org/2001/12/soap-envelope 
}:

В следующем примере используется XML тэги которого не содержат префиксов.
Здесь используются два файла SWF и XML находящиеся в одной и той же папке.
Файл XML, с именем NoPrefix.xml, содержит следующие тэги:

<?xml version="1.0"?> 
<rootnode>  
    <simplenode xmlns="http://www.w3.org/2001/12/soap-envelope"> 
        <innernode/> 
    </simplenode> 
</rootnode>

Исходный текст серверного сценария содержит следующий код (заметьте, что выводимые строки помещены в комментарии). Узел rootNode не имеет области имен указанной по умолчанию, значением его namespaceURI является пустая строка. Для узла simpleNode определенна область имен по умолчанию, значение для namespaceURI равно области имен по умолчанию. Узел innerNode не имеет области имен указанной по умолчанию, но он использует область имен определенную simpleNode, значением namespaceURI является то же самое что и для simpleNode.

var xmlDoc = new XML() 
xmlDoc.load("http://www.example.com/NoPrefix.xml"); 
xmlDoc.ignoreWhite = true; 
xmlDoc.onLoad = function(success) { 
    var rootNode = xmlDoc.childNodes[0]; 
    trace("rootNode Node namespaceURI: " + rootNode.namespaceURI);  
    // Выводит: [пустая строка] 
 
    var simpleNode = xmlDoc.childNodes[0].childNodes[0]; 
    trace("simpleNode Node namespaceURI: " + simpleNode.namespaceURI); 
    // Выводит: ... http://www.w3.org/2001/12/soap-envelope 
 
    var innerNode = xmlDoc.childNodes[0].childNodes[0].childNodes[0]; 
    trace("innerNode Node namespaceURI: " + innerNode.namespaceURI); 
    // Выводит: ... http://www.w3.org/2001/12/soap-envelope 
};

Остальные методы и свойства

Ярлыки: , ,

  1. Пока без комментариев.
  1. Пока нету.