パッケージトップレベル
public final class QName
継承QName Inheritance Object

QName オブジェクトは、XML エレメントの完全修飾名と属性を表します。各 QName オブジェクトには、ローカル名と名前空間 URI が付けられます。名前空間 URI の値が null の場合、QName オブジェクトはすべての名前空間に一致します。QName コンストラクタは、別の QName オブジェクトのコピーである新しい QName オブジェクトを作成したり、Namespace オブジェクトの uri と QName オブジェクトの localName を持つ新しい QName オブジェクトを作成する場合に使用します。

E4X 固有のメソッドでは、QName オブジェクトとストリングを同じように使用することができます。E4X メソッドは、QName、Namespace、XML、および XMLList の各クラスにあります。これらの E4X メソッドは、ストリングを受け取ると共に、QName オブジェクトを受け取ることもできます。この互換性によって、名前空間のサポートと XML.child() などのメソッドの連携が行われます。

XML、XMLList、Namespace などのクラスと同様、QName クラスには ECMAScript for XML (E4X) 仕様 (ECMA-357 Edition 2) で定義されている強力な XML 処理規格が実装されています。

完全修飾識別子は QName オブジェクトとして評価されます。名前空間を特定しないで XML エレメントの QName オブジェクトを指定した場合、関連付けられている QName オブジェクトの uri プロパティは、グローバルなデフォルトの名前空間に設定されます。名前空間を特定しないで XML 属性の QName オブジェクトを指定した場合、uri プロパティは空のストリングに設定されます。

例の表示

関連項目

XML
XMLList
Namespace
ECMAScript for XML (E4X) specification (ECMA-357 edition 2)


パブリックプロパティ
 プロパティ定義
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  localName : String
[read-only] QName オブジェクトのローカル名です。
QName
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  uri : String
[read-only] QName オブジェクトの URI です。
QName
パブリック Methods
 メソッド定義
  
QName(uri:Namespace, localName:QName)
Namespace オブジェクトの URI オブジェクトと QName オブジェクトの 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  [read-only]

QName オブジェクトのローカル名です。

実装
    public function get localName():String
uriプロパティ 
uri:String  [read-only]

QName オブジェクトの URI です。

実装
    public function get uri():String
コンストラクタの詳細
QName()コンストラクタ
public 関数 QName(uri:Namespace, localName:QName)

Namespace オブジェクトの URI オブジェクトと QName オブジェクトの localName を持つ QName オブジェクトを作成します。いずれかのパラメータが目的のデータ型でない場合、パラメータはストリングに変換され、新しい QName オブジェクトの該当のプロパティに割り当てられます。たとえば、両方のパラメータがストリングの場合、uri プロパティが最初のパラメータに設定され、localName プロパティが 2 番目のパラメータに設定された新しい QName オブジェクトが返されます。つまり、他の多くの順列と同様、次の順列がコントラクタで有効な形式となります。

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

uri パラメータに null を渡すと、新しい QName オブジェクトの uri プロパティは null に設定されます。

メモ : このクラスは、2 つのコンストラクタ項目を示しています。それぞれの形式が異なるパラメータを受け入れるためです。コンストラクタの動作は、各項目で詳細を示すように、渡されるパラメータの型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクタのオーバーロードをサポートしていません。

パラメータ
uri:Namespaceuri 値のコピー元の Namespace オブジェクトです。他のタイプのパラメータはストリングに変換されます。
 
localName:QNamelocalName 値のコピー元の QName オブジェクトです。他のタイプのパラメータはストリングに変換されます。
QName()コンストラクタ 
public 関数 QName(qname:QName)

別の QName オブジェクトのコピーである QName オブジェクトを作成します。コンストラクタに渡されたパラメータが QName オブジェクトである場合、QName オブジェクトのコピーが作成されます。パラメータが QName オブジェクトでない場合、パラメータはストリングに変換され、新しい QName インスタンスの localName プロパティに割り当てられます。パラメータが undefined であるか未指定の場合、localName プロパティが空のストリングに設定された新しい QName オブジェクトが作成されます。

<strong>メモ :</strong> このクラスは、2 つのコンストラクタ項目を示しています。それぞれの形式が異なるパラメータを受け入れるためです。コンストラクタの動作は、各項目で詳細を示すように、渡されるパラメータの型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクタのオーバーロードをサポートしていません。

パラメータ
qname:QName — コピーする QName オブジェクトです。他のタイプのオブジェクトはストリングに変換され、新しい QName オブジェクトの localName プロパティに割り当てられます。
メソッドの詳細
toString()メソッド
AS3 function toString():String

URI と QName オブジェクトのローカル名を "::" で区切ったストリングを返します。

形式は QName オブジェクトの uri プロパティによって決まります。

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

戻り値
String — ストリングとしての完全修飾名です。
valueOf()メソッド 
AS3 function valueOf():QName

QName オブジェクトを返します。

戻り値
QName — QName インスタンスのプリミティブ値です。

The following example shows how to create a QName instance and use it to select XML elements. Two ways of creating a QName are shown:
  1. Creating a Namespace instance and then using it as input to the QName constructor. This approach is best if you want to use the Namespace.prefix property for other purposes later.
  2. Creating a QName instance using a simple string value for the uri parameter in the QName constructor.

This code does the following things:

  1. Defines an XML variable named rssXML.
  2. Creates a new Namespace object with the prefix dc.
  3. Creates a new QName object using the Namespace object and the local name creator.
  4. Calls the showDescendants() method, which uses the XML.descendants() method to get an XMLList instance containing all the descendant elements whose qualified name matches the given QName instance.
  5. Displays the qualified name and the text value of each element in the list using a for each loop.
  6. Creates another QName object using a string value for the uri parameter and the local name date.
  7. Calls the showDescendants() method again to display the name and text value of the descendant elements.
 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" } } } }