Главная / Action Script 3
ПакетВерхний уровень
Классpublic final class QName
НаследованиеQName Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Объекты QName представляют полные имена элементов и атрибутов XML. У каждого объекта QName существует локальное имя и унифицированный идентификатор ресурса пространства имен (URI). Если в качестве значения пространства имен выбрано null, объект QName совпадает с любым пространством имен. Создайте с помощью конструктора QName новый объект QName, который либо является копией другого объекта QName, либо представляет собой новый объект QName, для которого параметр uri берется из объекта Namespace, а параметр localName — из объекта QName.

Применяя методы, относящиеся к E4X, можно использовать поочередно строки и объекты QName. Методы E4X представлены в классах QName, Namespace, XML и XMLList. Эти методы принимают как строки, так и объекты QName. Эта взаимозаменяемость проявляется, например, в том, как поддержка пространства имен обрабатывает метод XML.child().

В классе QName (а также в классах XML, XMLList и Namespace) реализованы мощные стандарты обработки XML, определенные в языке ECMAScript для спецификации XML E4X (ECMA-357, второе издание).

Результаты оценки с помощью классифицированного идентификатора записываются в объект QName. Если объект QName элемента XML задается без указания пространства имен, свойству uri связанного объекта QName присваивается значение глобального пространства имен по умолчанию. Если объект QName атрибута XML задается без указания пространства имен, свойству uri присваивается пустая строка.

Посмотреть примеры

См. также

XML
XMLList
Namespace
Спецификация языка ECMAScript для XML E4X (ECMA-357, редакция 2)


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  localName : String
[только для чтения] Локальное имя объекта QName.
QName
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  uri : String
[только для чтения] Унифицированный идентификатор ресурса (URI-адрес) объекта QName.
QName
Общедоступные методы
 МетодОпределено
  
QName(uri:Namespace, localName:QName)
Создает объект QName с объектом URI из объекта Namespace и свойством localName из объекта QName.
QName
  
QName(qname:QName)
Создает объект QName, который является копией другого объекта QName.
QName
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Возвращает строку, составленную из URI и локального имени для объекта QName, разделенных символами "::".
QName
  
Возвращает объект QName.
QName
Сведения о свойстве
localNameсвойство
localName:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Локальное имя объекта QName.



Реализация
    public function get localName():String
uriсвойство 
uri:String  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Унифицированный идентификатор ресурса (URI-адрес) объекта QName.



Реализация
    public function get uri():String
Сведения о конструкторе
QName()Конструктор
public function QName(uri:Namespace, localName:QName)

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Создает объект QName с объектом URI из объекта Namespace и свойством localName из объекта QName. Если любой из параметров не относится к ожидаемому типу данных, то он преобразуется в строку и присваивается соответствующему свойству нового объекта QName. Например, если оба параметра представляют собой строки, возвращается новый объект QName. При этом свойство uri устанавливается для первого параметра, а свойство localName — для второго параметра. Иными словами, следующие перестановки наряду со многими другими являются действительными формами конструктора:

QName (uri:Namespace, localName:String);
QName (uri:String, localName: QName);
QName (uri:String, localName: String);

Если значение null передается для параметра uri, свойство uri нового объекта QName получает значение null.

Примечание. В этом классе показаны две записи конструктора, поскольку каждая из них поддерживает разные параметры. Режим работы конструктора меняется в зависимости от типа и количества переданных параметров (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

Параметры
uri:Namespace — Объект Namespace, из которого копируется значение uri. Параметр любого другого типа преобразуется в строку.
 
localName:QName — Объект QName, из которого копируется значение localName. Параметр любого другого типа преобразуется в строку.
QName()Конструктор 
public function QName(qname:QName)

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Создает объект QName, который является копией другого объекта QName. Если переданный конструктору параметр является объектом QName, создается копия объекта QName. Если параметр не является объектом QName, то он преобразуется в строку и присваивается свойству localName нового экземпляра QName. Если параметр undefined (не определен) или не указан, создается новый объект QName, где для свойства localName выбрана пустая строка.

Примечание. В этом классе показаны две записи конструктора, поскольку каждая из них поддерживает разные параметры. Режим работы конструктора меняется в зависимости от типа и количества переданных параметров (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.

Параметры
qname:QName — Копируемый объект QName. Объекты других типов преобразуются в строки, которые присваиваются свойству localName нового объекта QName.
Сведения о методе
toString()метод
AS3 function toString():String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возвращает строку, составленную из URI и локального имени для объекта QName, разделенных символами "::".

Формат зависит от свойства uri объекта QName:

If uri == "" 
  toString returns localName
 else if uri == null
  toString returns *::localName 
 else
  toString returns uri::localName

Возвращает
String — Полное имя в виде строки.
valueOf()метод 
AS3 function valueOf():QName

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возвращает объект QName.

Возвращает
QName — Элементарное значение экземпляра QName.
Примеры Как пользоваться примерами
QNameExample.as

В следующем примере показан способ создания экземпляра QName и его применения для выбора элементов XML. Демонстрируются два метода использования QName:
  1. Создание экземпляра пространства имен и последующее использование его в качестве входных данных для конструктора QName. Этот подход является наилучшим, если необходимо позднее воспользоваться свойством Namespace.prefix в других целях.
  2. Создание экземпляра QName с помощью простого строчного значения параметра uri в конструкторе QName.

Этот код выполняет следующие функции:

  1. Определяет переменную XML с именем rssXML.
  2. Создает новый объект Namespace с префиксом dc.
  3. Создает новый объект QName с помощью объекта Namespace, которому присваивается локальное имя creator (создатель).
  4. Вызывает метод showDescendants(), использующий метод XML.descendants() для получения экземпляра XMLList, в котором содержатся все элементы-потомки, полное имя которых соответствует данному экземпляру QName.
  5. Показывает полное имя и текстовое значение каждого элемента в списке с помощью цикла for each.
  6. Создает еще один объект QName, применяя строковое значение параметра uri и локальное имя date.
  7. Снова вызывает метод showDescendants() для показа имени и текстового значения элементов-потомков.
package
{
    import flash.display.Sprite;
    
    public class QNameExample extends Sprite
    {
        public function QNameExample()
        {
            var rssXML:XML =  <rdf:RDF
              xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
              xmlns="http://purl.org/rss/1.0/"
              xmlns:dc="http://purl.org/dc/elements/1.1/">
              <channel rdf:about="http://www.xml.com/cs/xml/query/q/19">
                <title>Test RSS</title>
                <link>http://www.adobe.com/</link>
                <description>This is a test RSS document.</description>
                <language>en-us</language>
                <items>
                  <rdf:Seq>
                <rdf:li rdf:resource="http://www.adobe.com/devnet/flash/"/>
                <rdf:li rdf:resource="http://www.adobe.com/devnet/flex/"/>
                  </rdf:Seq>
                </items>
              </channel>
              <item rdf:about="http://www.adobe.com/devnet/flash/">
                <title>Flash Developer Center</title>
                <link>http://www.adobe.com/devnet/flash/</link>
                <description>Welcome to the Flash Developer Center</description>
                <dc:creator>Adobe</dc:creator>
                <dc:date>2005-08-08</dc:date>    
              </item>
              <item rdf:about="http://www.adobe.com/devnet/flex/">
                <title>Flex Developer Center</title>
                <link>http://www.adobe.com/devnet/flex/</link>
                <description>Welcome to the Flex Developer Center</description>
                <dc:creator>Adobe</dc:creator>
                <dc:date>2005-10-16</dc:date>    
              </item>
            </rdf:RDF>;
            
            var dcNamespace:Namespace = new Namespace("dc", "http://purl.org/dc/elements/1.1/");
            var creatorQName:QName = new QName(dcNamespace, "creator");
            trace(creatorQName.uri); // http://purl.org/dc/elements/1.1/
            trace(creatorQName.localName); // creator
            
            showDescendants(rssXML, creatorQName);
            
            var dateQName:QName = new QName("http://purl.org/dc/elements/1.1/", "date");
            trace(dateQName.uri); // http://purl.org/dc/elements/1.1/
            trace(dateQName.localName); // date
            
            showDescendants(rssXML, dateQName);
        }
        
        public function showDescendants(xmlData:XML, qualifiedName:QName):void
        {
            var decendantList:XMLList = xmlData.descendants(qualifiedName);
            
            for each (var element:XML in decendantList)
            {
                trace(element.name()); // the fully qualified name, 
                                       // like "http://purl.org/dc/elements/1.1/::creator"
                trace(element); // the simple text value of each element, like "Adobe"
            }                
        }
    }
}