Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 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
присваивается пустая строка.
Посмотреть примеры
localName:String
[только для чтения]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Локальное имя объекта QName.
Реализация public function get localName():String
uri:String
[только для чтения]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Унифицированный идентификатор ресурса (URI-адрес) объекта QName.
Реализация public function get uri():String
public function QName(uri:Namespace, localName:QName)
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 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 . Параметр любого другого типа преобразуется в строку.
|
public function QName(qname:QName)
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает объект QName, который является копией другого объекта QName. Если переданный конструктору параметр является объектом QName, создается копия объекта QName. Если параметр не является объектом QName, то он преобразуется в строку и присваивается свойству localName
нового экземпляра QName. Если параметр undefined
(не определен) или не указан, создается новый объект QName, где для свойства localName
выбрана пустая строка.
Примечание. В этом классе показаны две записи конструктора, поскольку каждая из них поддерживает разные параметры. Режим работы конструктора меняется в зависимости от типа и количества переданных параметров (см. описание в записях). ActionScript 3.0 не поддерживает переопределение метода или конструктора.
Параметры | qname:QName — Копируемый объект QName. Объекты других типов преобразуются в строки, которые присваиваются свойству localName нового объекта QName.
|
AS3 function toString():String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает строку, составленную из URI и локального имени для объекта QName, разделенных символами "::".
Формат зависит от свойства uri
объекта QName:
If uri
== ""
toString
returns localName
else if uri
== null
toString
returns *::localName
else
toString
returns uri
::localName
Возвращает | String — Полное имя в виде строки.
|
AS3 function valueOf():QName
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает объект QName.
Возвращает | QName — Элементарное значение экземпляра QName.
|
В следующем примере показан способ создания экземпляра QName и его применения для выбора элементов XML. Демонстрируются два метода использования QName:
- Создание экземпляра пространства имен и последующее использование его в качестве входных данных для конструктора QName. Этот подход является наилучшим, если необходимо позднее воспользоваться свойством
Namespace.prefix
в других целях. - Создание экземпляра QName с помощью простого строчного значения параметра
uri
в конструкторе QName.
Этот код выполняет следующие функции:
- Определяет переменную XML с именем
rssXML
. - Создает новый объект Namespace с префиксом
dc
. - Создает новый объект QName с помощью объекта Namespace, которому присваивается локальное имя
creator (создатель)
. - Вызывает метод
showDescendants()
, использующий метод XML.descendants()
для получения экземпляра XMLList, в котором содержатся все элементы-потомки, полное имя которых соответствует данному экземпляру QName. - Показывает полное имя и текстовое значение каждого элемента в списке с помощью цикла
for each
. - Создает еще один объект QName, применяя строковое значение параметра
uri
и локальное имя date
. - Снова вызывает метод
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"
}
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Wed Sep 24 2008, 07:56 AM -07:00