![]() ![]() ![]() ![]() |
SophiaFramework UNIVERSE 5.3 |
#include <SFXXMLAttribute.hpp>
class SFXXMLAttribute : public SFXXMLNode;
SFMTYPEDEFCLASS(SFXXMLAttribute)
Attribute ノード(SFXXMLAttribute)は、 Element ノード(XML 文書の要素)の 1 つの属性を保持します。 通常、属性に設定可能な値は文書に関連付けられたスキーマに定義されています。
SFXXMLAttribute は SFXXMLNode を継承しますが、 Attribute ノードは、属性を設定する Element ノードの子ノードになりません。 このため、Attribute ノードは XML 文書(SFXXMLDocument)の DOM ツリーの一部と見なされません。
つまり、Attribute ノードは SFXXMLNode に定義される parentNode、previousSibling、nextSibling の属性が null になります。 そのため、DOM ツリーの親子関係、兄弟関係のノードを辿ることにより Attribute ノードに到達することはできません。
Attribute ノードは属性を記述する Element ノードのプロパティとして存在し、 SFXXMLElement::SetAttribute などの関数を使用して Element ノードに Attribute ノードを設定し、 SFXXMLElement::GetAttribute などの関数を使用して Element ノードから Attribute ノードを取得します。 SFXXMLElement::HasAttribute などの関数を使用すれば、 Element ノードに Attribute ノードが設定されているかどうかの判定も可能です。
また、Attribute ノードは DocumentFragment ノード(SFXXMLDocumentFragment)の子ノードにならない代わりに、 DocumentFragment 内の Element ノードにプロパティとして関連付けることが可能です。
属性値は、SFXXMLAttribute::SetValue 関数を使用して設定し、 SFXXMLAttribute::GetValue 関数を使用して取得します。 属性値と nodeValue 属性値は同等なので、これらの関数の代わりに SFXXMLAttribute::SetNodeValue 関数と SFXXMLAttribute::GetNodeValue 関数を使用することもできます。
属性名は、SFXXMLAttribute::GetName 関数を使用して取得します。 属性名と nodeName 属性値は同等なので、これらの関数の代わりに SFXXMLAttribute::GetNodeName 関数を使用することもできます。
XML 文書で属性値に実体参照が含まれている場合は、 Attribute ノードは子ノードとして Text ノード(SFXXMLText)または EntityReference ノード(SFXXMLEntityReference)を持つことになります。
なお、属性値はすべて文字列として表現されます。
SFXXMLNode | SFXXMLElement | SFXXMLDocument | SFXXMLDocumentFragment | SFXXMLEntityReference | SFXXMLText
コンストラクタ/デストラクタ |
---|
SFXXMLAttribute(
SFXXMLDocumentPtr owner
, SFXAnsiStringConstRef name
, SFXAnsiStringConstRef value
) SFXXMLAttribute クラスのコンストラクタです。
|
SFXXMLAttribute(
SFXXMLDocumentPtr owner
, SFXAnsiStringConstRef name
, SFXAnsiStringConstRef namespaceURI
, SFXAnsiStringConstRef value
) SFXXMLAttribute クラスのコンストラクタです。
|
SFXXMLAttribute(
SFXXMLAttributeConstRef other
, Bool deep = false
) SFXXMLAttribute クラスのコンストラクタです。
|
~SFXXMLAttribute( Void ) SFXXMLAttribute クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SFCError |
AppendChild(
SFXXMLNodeConstPtr newchild
) 子ノードの最後にノードを追加します。
|
SFCError |
CloneNode(
SFXXMLNodeHandle clonenode
, Bool deep
) ノードのコピーを作成します。
|
Bool |
EqualNode(
SFXXMLNodeConstPtr arg
) 指定したノードと同等かどうかを判定します。
|
DOMNodeListPtr |
GetChildNodes( Void ) すべての子ノードを取得します。
|
SFXXMLNodePtr |
GetFirstChild( Void ) 最初の子ノードを取得します。
|
SFXXMLNodePtr |
GetLastChild( Void ) 最後の子ノードを取得します。
|
ACharConstPtr |
GetLocalName( Void ) ノードの名前(nodeName 属性値)のローカル名を取得します。
|
ACharConstPtr |
GetName( Void ) ノードの名前(nodeName 属性値)を取得します。
|
ACharConstPtr |
GetNamespaceURI( Void ) 名前空間 URI を取得します。
|
ACharConstPtr |
GetNodeName( Void ) ノードの名前(nodeName 属性値)を取得します。
|
NodeType |
GetNodeType( Void ) ノードタイプ(nodeType 属性値)を取得します。
|
ACharConstPtr |
GetNodeValue( Void ) ノードの値(nodeValue 属性値)を取得します。
|
ACharConstPtr |
GetPrefix( Void ) ノードの名前(nodeName 属性値)の名前空間接頭辞を取得します。
|
ACharConstPtr |
GetValue( Void ) ノードの値(nodeValue 属性値)を取得します。
|
Bool |
HasChildNodes( Void ) 子ノードを持つかどうか判定します。
|
SFCError |
InsertBefore(
SFXXMLNodeConstPtr newchild
, SFXXMLNodeConstPtr refchild
) ノードを挿入します。
|
SFCError |
RemoveChild(
SFXXMLNodeConstPtr oldchild
) 子孫ノードも含めて子ノードを削除します。
|
SFCError |
ReplaceChild(
SFXXMLNodeConstPtr newchild
, SFXXMLNodeConstPtr oldchild
) 子ノードを置換します。
|
Void |
SetNodeValue(
ACharConstPtr value
) ノードの値(nodeValue 属性値)を設定します。
|
Void |
SetValue(
SFXAnsiStringConstRef value
) ノードの値(nodeValue 属性値)を設定します。
|
SFXXMLNodePtr |
GetNextSibling( Void )
(SFXXMLNode から継承)
【無効】次の兄弟ノードを取得します。
|
SFXXMLNodePtr |
GetParentNode( Void )
(SFXXMLNode から継承)
【無効】親ノードを取得します。
|
SFXXMLNodePtr |
GetPreviousSibling( Void )
(SFXXMLNode から継承)
【無効】前の兄弟ノードを取得します。
|
SFXAnsiString |
GetText( Void )
(SFXXMLNode から継承)
ノードテキストを取得します。
|
Bool |
IsSameNode(
SFXXMLNodeConstPtr other
)
(SFXXMLNode から継承)
指定されたノードと同一であるか判定します。
|
SFCError |
SetText(
SFXAnsiStringConstRef text
)
(SFXXMLNode から継承)
ノードテキストを設定します。
|
型 |
---|
DOMNamedNodeMap
(SFXXMLNode から継承)
複数の DOM ノードを名前またはローカル名と名前空間 URI で管理するためのクラスです。
|
DOMNodeList
(SFXXMLNode から継承)
複数の DOM ノードをリスト形式で管理するためのクラスです。
|
NodeType
(SFXXMLNode から継承)
ノードタイプを表す定数です。
|
[ public, explicit ] SFXXMLAttribute( SFXXMLDocumentPtr owner // ドキュメントツリーのルート SFXAnsiStringConstRef name // 属性名: 修飾名("名前空間接頭辞:ローカル名")の指定も可能 SFXAnsiStringConstRef value // 属性値 );
[ public, explicit ] SFXXMLAttribute( SFXXMLDocumentPtr owner // ドキュメントツリーのルート SFXAnsiStringConstRef name // 属性名(修飾名="名前空間接頭辞:ローカル名") SFXAnsiStringConstRef namespaceURI // 属性の名前空間 URI SFXAnsiStringConstRef value // 属性値 );
[ public, explicit ] SFXXMLAttribute( SFXXMLAttributeConstRef other // Attribute ノード Bool deep = false // 子ノードを再帰的にコピーするかどうか );
このコンストラクタは、指定された値をこのノードに設定します。
引数には、このノードを所有するドキュメントツリーのルート(SFXXMLDocument)・属性名・属性値・属性の名前空間 URI(省略可)、 または別の Attribute ノードのいずれかを指定することが可能です。
名前空間 URI を指定する場合は、属性名は修飾名("名前空間接頭辞:ローカル名")で指定します。 指定する名前空間接頭辞が "xml" または "xmlns" の場合、namespaceURI 引数には各々以下の名前空間 URI を指定する必要があります。 異なる名前空間 URI を指定した場合、その名前空間 URI は無視され設定さません。
名前空間接頭辞 | 名前空間 URI |
---|---|
xml | http://www.w3.org/XML/1998/namespace |
xmlns | http://www.w3.org/2000/xmlns/ |
![]() |
注意 |
---|---|
name 引数に指定した属性名は、 SFXXMLAttribute::GetNodeName 関数で取得できる、 このノードの nodeName 属性として設定されます。 name 引数に指定した属性名を修飾名("名前空間接頭辞:ローカル名")で指定した場合、 名前空間接頭辞とローカル名はそれぞれ SFXXMLAttribute::GetPrefix 関数と SFXXMLAttribute::GetLocalName 関数で取得できます。 namespaceURI 引数に指定した名前空間 URI は、 SFXXMLAttribute::GetNamespaceURI 関数で取得できます。 但し、上記表の名前空間接頭辞("xml" と "xmlns")を指定する場合は、上記表の名前空間 URI を指定する必要があります。 value 引数に指定される属性値は、 SFXXMLAttribute::GetNodeValue 関数で取得できる、 このノードの nodeValue 属性として設定されます。 |
[ public, virtual ] virtual ~SFXXMLAttribute(Void);
このデストラクタは、何も行いません。
[ public, virtual ] SFCError AppendChild( SFXXMLNodeConstPtr newchild // 追加するノード );
この関数は、指定されたノード(newchild ノード)をこのノードの最後の子ノードとして追加します。
newchild ノードをコピーせずにそのまま追加します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。
![]() |
newchild 引数が不正になる条件 |
---|---|
以下のとき、newchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。
|
![]() |
注意 |
---|---|
newchild 引数には、Text / EntityReference の何れかのノードを指定してください。 |
![]() |
注意 |
---|---|
内部で SFXXMLAttribute::InsertBefore(newchild, null) を呼び出しています。 |
[ public, virtual ] SFCError CloneNode( SFXXMLNodeHandle clonenode // コピー先のノード(Handle 型) Bool deep // 子ノードを再帰的にコピーするかどうか );
コピー先ノードを指定します。
true の場合、子ノードを再帰的にコピーします。
false の場合、ノード自身だけをコピーします。
この関数は、このノードのコピーを作成し、clonenode 引数に返します。
![]() |
子孫ノードのコピー |
---|---|
deep 引数に true を指定すると、このノードの子孫ノードも含めてコピーが行われます。 false を指定した場合は、このノードだけがコピーされます(このノードの子孫ノードはコピーされません)。 |
[ public, virtual, const ] Bool EqualNode( SFXXMLNodeConstPtr arg // 同等性を比較する対象のノード );
この関数は、指定されたノードと同等かどうか(ノードの内容が同じであるかどうか)を判定します。
![]() |
2 つのノードが同等であるための条件 |
---|---|
2 つのノードが同等であるための条件は、以下のように再帰的に定義されます。
|
![]() |
2 つのノードの同一性の判定 |
---|---|
2 つのノードが同一であるかどうか(2 つのノードが同じオブジェクトを参照しているかどうか)の判定には、 SFXXMLNode::IsSameNode 関数を使用します。 |
[ public, virtual, const ] DOMNodeListPtr GetChildNodes(Void);
すべての子ノード(SFXXMLNode::DOMNodeList へのポインタ)
この関数は、このノードのすべての子ノードを取得します。
![]() |
注意 |
---|---|
子ノードが存在しない場合は null を返します。 |
![]() |
注意 |
---|---|
SFXXMLNode::DOMNodeList の各要素は、 SFXXMLNode へのポインタです。 |
[ public, virtual, const ] SFXXMLNodePtr GetFirstChild(Void);
最初の子ノード
この関数は、このノードの最初の子ノードを取得します。
![]() |
注意 |
---|---|
子ノードが存在しない場合は null を返します。 |
[ public, virtual, const ] SFXXMLNodePtr GetLastChild(Void);
最後の子ノード
この関数は、このノードの最後の子ノードを取得します。
![]() |
注意 |
---|---|
子ノードが存在しない場合は null を返します。 |
[ public, const ] ACharConstPtr GetLocalName(Void);
このノードの nodeName 属性値のローカル名
この関数は、このノードの名前(nodeName 属性値)のローカル名を取得します。
Attribute ノードの場合、nodeName 属性値は XML 文書の「属性名」のことです。 「属性名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。
![]() |
注意 |
---|---|
SFXXMLAttribute::SFXXMLAttribute コンストラクタで name 引数に修飾名で指定した場合、 修飾名の ":" よりも右側にある文字列がローカル名として返されます。 |
SFXXMLAttribute::SFXXMLAttribute | SFXXMLAttribute::GetName | SFXXMLAttribute::GetNodeName | SFXXMLAttribute::GetName | SFXXMLAttribute::GetPrefix
[ public, const ] ACharConstPtr GetName(Void);
ノードの名前(nodeName 属性値)
この関数は、このノードの名前(nodeName 属性値)を取得します。
Attribute ノードの場合、nodeName 属性値は XML 文書の「属性名」のことです。 「属性名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。
![]() |
注意 |
---|---|
属性名は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの name 引数で設定します。 |
![]() |
注意 |
---|---|
SFXXMLAttribute::GetNodeName 関数を呼び出すのと同等です。 |
// 修飾名と名前空間 URI を指定して Attribute ノードを作成する SFXXMLAttributePtr atti = document.CreateAttributeNS("book:isbn","http://www.w3.org/book"); // Attribute ノードに属性値を設定する atti->SetValue("4-7741-1616-5"); // Attribute ノードを設定する book->SetAttributeNode(atti); TRACE("Attribute's name = %s", atti->GetName()); // 属性名(修飾名) = book:isbn TRACE("Attribute's value = %s", atti->GetValue()); // 属性値 = 4-7741-1616-5 TRACE("Attribute's prefix = %s", atti->GetPrefix()); // 名前空間接頭辞 = book TRACE("Attribute's uri = %s", atti->GetNamespaceURI()); // 名前空間 URI = http://www.w3.org/book
SFXXMLAttribute::GetNodeName | SFXXMLAttribute::GetPrefix | SFXXMLAttribute::GetLocalName | SFXXMLAttribute::SFXXMLAttribute
[ public, const ] ACharConstPtr GetNamespaceURI(Void);
このノードに設定されている名前空間 URI
この関数は、このノードに設定されている名前空間 URI を取得します。
名前空間 URI が設定されていない場合は、null を返します。
![]() |
注意 | ||||||
---|---|---|---|---|---|---|---|
名前空間 URI は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの namespaceURI 引数に指定します。 属性名の名前空間接頭辞が "xml" または "xmlns" の場合は、以下の表にある名前空間 URI しか設定できません。
|
SFXXMLAttribute::SFXXMLAttribute | SFXXMLAttribute::GetName | SFXXMLAttribute::GetNodeName | SFXXMLAttribute::GetLocalName | SFXXMLAttribute::GetPrefix
[ public, virtual, const ] ACharConstPtr GetNodeName(Void);
ノードの名前(nodeName 属性値)
この関数は、このノードの名前(nodeName 属性値)を取得します。
Attribute ノードの場合、nodeName 属性値は XML 文書の「属性名」のことです。 「属性名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。
![]() |
注意 |
---|---|
属性名は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの name 引数で設定します。 |
![]() |
注意 |
---|---|
SFXXMLAttribute::GetName 関数を呼び出すのと同等です。 |
SFXXMLAttribute::GetName | SFXXMLAttribute::SFXXMLAttribute | SFXXMLAttribute::GetLocalName | SFXXMLAttribute::GetPrefix | SFXXMLNode::GetNodeName | SFXXMLNode
[ public, virtual, const ] NodeType GetNodeType(Void);
SFXXMLNode::ATTRIBUTE_NODE
この関数は、このノードのタイプ(nodeType 属性値)を取得します。
Attribute ノードの場合、nodeType 属性値は SFXXMLNode::ATTRIBUTE_NODE です。
[ public, virtual, const ] ACharConstPtr GetNodeValue(Void);
ノードの値(nodeValue 属性値)
この関数は、このノードの値(nodeValue 属性値)を取得します。
Attribute ノードの場合、nodeValue 属性値は XML 文書の「属性値」のことです。
![]() |
注意 |
---|---|
属性値は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの value 引数で設定します。 |
![]() |
注意 |
---|---|
SFXXMLAttribute::GetValue 関数を呼び出すのと同等です。 |
SFXXMLAttribute::SetNodeValue | SFXXMLAttribute::GetValue | SFXXMLAttribute::SFXXMLAttribute | SFXXMLNode::GetNodeValue | SFXXMLNode
[ public, const ] ACharConstPtr GetPrefix(Void);
このノードの nodeName 属性値の名前空間接頭辞
この関数は、このノードの名前(nodeName 属性値)の名前空間接頭辞を取得します。
設定されていない場合は、null を返します。
Attribute ノードの場合、nodeName 属性値は XML 文書の「属性名」のことです。 「属性名」は、修飾名("名前空間接頭辞:ローカル名")で表されます。
![]() |
注意 |
---|---|
SFXXMLAttribute::SFXXMLAttribute コンストラクタで name 引数に修飾名で指定した場合、 修飾名の ":" よりも左側にある文字列が名前空間接頭辞として返されます。 |
[ public, const ] ACharConstPtr GetValue(Void);
ノードの値(nodeValue 属性値)
この関数は、このノードの値(nodeValue 属性値)を取得します。
Attribute ノードの場合、nodeValue 属性値は XML 文書の「属性値」のことです。
![]() |
注意 |
---|---|
属性値は、SFXXMLAttribute::SFXXMLAttribute コンストラクタの value 引数で設定します。 |
![]() |
注意 |
---|---|
SFXXMLAttribute::GetNodeValue 関数を呼び出すのと同等です。 |
[ public, virtual, const ] Bool HasChildNodes(Void);
この関数は、このノードが子ノードを持つかどうか判定します。
[ public, virtual ] SFCError InsertBefore( SFXXMLNodeConstPtr newchild // 挿入するノード SFXXMLNodeConstPtr refchild // 参照ノード、このノードの直前に挿入される(refchild が null の場合、newchild は最後の子ノードとして挿入される) );
この関数は、newchild 引数に指定されたノード(newchild ノード)を refchild 引数に指定されたノード(refchild ノード)の前に挿入します。
newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。
newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、refchild ノードの直前に挿入します。
refchild ノードが null の場合は、一番最後の子ノードとして挿入します。 また、newchild ノードと refchild ノードが同じノードを指す場合、何も起こりません。
![]() |
newchild / refchild 引数が不正になる条件 |
---|---|
以下のとき、newchild / refchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。
|
[ public, virtual ] SFCError RemoveChild( SFXXMLNodeConstPtr oldchild // 削除する子ノード );
この関数は、このノードから子孫ノードも含めて指定された子ノードを削除します。
[ public, virtual ] SFCError ReplaceChild( SFXXMLNodeConstPtr newchild // 置換後ノード SFXXMLNodeConstPtr oldchild // 置換前ノード );
この関数は、oldchild 引数に指定されたこのノードの子ノード(oldchild ノード)を newchild 引数に指定されたノード(newchild ノード)で置換します。
newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。
oldchild ノード以下の子孫ノードは、DOM ツリーから削除され、メモリも解放されます。
newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、oldchild ノードを置換します。
newchild ノードと oldchild ノードが同じである場合は、何も起こりません。
![]() |
newchild / oldchild 引数が不正になる条件 |
---|---|
以下のとき、newchild / oldchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。
|
![]() |
注意 |
---|---|
newchild 引数には、Text / EntityReference の何れかのノードを指定してください。 |
![]() |
Tip |
---|---|
内部では、SFXXMLAttribute::InsertBefore(newchild, oldchild) を呼び出してから、 SFXXMLAttribute::RemoveChild(oldchild) を実行します。 |
SFXXMLAttribute::InsertBefore | SFXXMLAttribute::RemoveChild | SFXXMLNode::ReplaceChild | SFXXMLNode
[ public, virtual ] Void SetNodeValue( ACharConstPtr value // 属性値 );
この関数は、このノードの値(nodeValue 属性値)を指定された値に設定します。
Attribute ノードの場合、nodeValue 属性値は XML 文書の「属性値」のことです。
![]() |
注意 |
---|---|
SFXXMLAttribute::SetValue 関数を呼び出すのと同等です。 |
SFXXMLAttribute::GetNodeValue | SFXXMLAttribute::SetValue | SFXXMLAttribute::SFXXMLAttribute | SFXXMLNode::SetNodeValue | SFXXMLNode
[ public ] Void SetValue( SFXAnsiStringConstRef value // 属性値 );
この関数は、このノードの値(nodeValue 属性値)を指定された値に設定します。
Attribute ノードの場合、nodeValue 属性値は XML 文書の「属性値」のことです。
![]() |
注意 |
---|---|
SFXXMLAttribute::SetNodeValue 関数を呼び出すのと同等です。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]() ![]() |