前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXXMLEntityReference
[XML] Entity Reference ノードを表すクラスです。
#include <SFXXMLEntityReference.hpp>
class SFXXMLEntityReference : public SFXXMLNode;
SFMTYPEDEFCLASS(SFXXMLEntityReference)

継承図

SFXXMLEntityReference クラスの継承図

協調図

SFXXMLEntityReference クラスの協調図

解説

EntityReference ノード(SFXXMLEntityReference)は、 XML 文書のエンティティ参照を保持します。

エンティティ参照は、BREW アプリによって展開される必要があります。

[Caution] 注意

SophiaFramework UNIVERSE のパーサー(SFXXMLDOMParser / SFXXMLSAXParser)の仕様では、 エンティティ参照は展開されないことに注意してください。

参照

SFXXMLNode | SFXXMLEntity | SFXXMLDOMParser | SFXXMLSAXParser

メンバ

コンストラクタ/デストラクタ
SFXXMLEntityReference( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name , Bool clonechild = true )
SFXXMLEntityReference クラスのコンストラクタです。
SFXXMLEntityReference( SFXXMLEntityReferenceConstRef other , Bool deep = false )
SFXXMLEntityReference クラスのコンストラクタです。
~SFXXMLEntityReference( Void )
SFXXMLEntityReference クラスのデストラクタです。
パブリック関数
SFCError AppendChild( SFXXMLNodeConstPtr newchild )
子ノードの最後にノードを追加します。
SFCError CloneNode( SFXXMLNodeHandle clonenode , Bool deep )
ノードのコピーを作成します。
DOMNodeListPtr GetChildNodes( Void )
すべての子ノードを取得します。
SFXXMLNodePtr GetFirstChild( Void )
最初の子ノードを取得します。
SFXXMLNodePtr GetLastChild( Void )
最後の子ノードを取得します。
SFXXMLNodePtr GetNextSibling( Void )
次の兄弟ノードを取得します。
ACharConstPtr GetNodeName( Void )
ノードの名前(nodeName 属性値)を取得します。
NodeType GetNodeType( Void )
ノードタイプ(nodeType 属性値)を取得します。
SFXXMLNodePtr GetParentNode( Void )
親ノードを取得します。
SFXXMLNodePtr GetPreviousSibling( Void )
前の兄弟ノードを取得します。
Bool HasChildNodes( Void )
子ノードを持つかどうか判定します。
SFCError InsertBefore( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr refchild )
ノードを挿入します。
SFCError RemoveChild( SFXXMLNodeConstPtr oldchild )
子孫ノードも含めて子ノードを削除します。
SFCError ReplaceChild( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr oldchild )
子ノードを置換します。
Bool EqualNode( SFXXMLNodeConstPtr arg ) (SFXXMLNode から継承)
指定されたノードと同等かどうかを判定します。
ACharConstPtr GetNodeValue( Void ) (SFXXMLNode から継承)
ノードの値(nodeValue 属性値)を取得します。
SFXAnsiString GetText( Void ) (SFXXMLNode から継承)
ノードテキストを取得します。
Bool IsSameNode( SFXXMLNodeConstPtr other ) (SFXXMLNode から継承)
指定されたノードと同一であるか判定します。
Void SetNodeValue( ACharConstPtr value ) (SFXXMLNode から継承)
ノードの値(nodeValue 属性値)を設定します。
SFCError SetText( SFXAnsiStringConstRef text ) (SFXXMLNode から継承)
ノードテキストを設定します。
DOMNamedNodeMap (SFXXMLNode から継承)
複数の DOM ノードを名前またはローカル名と名前空間 URI で管理するためのクラスです。
DOMNodeList (SFXXMLNode から継承)
複数の DOM ノードをリスト形式で管理するためのクラスです。
NodeType (SFXXMLNode から継承)
ノードタイプを表す定数です。

SFXXMLEntityReference::SFXXMLEntityReference
SFXXMLEntityReference クラスのコンストラクタです。
[ public, explicit ]
SFXXMLEntityReference(
    SFXXMLDocumentPtr owner      // ドキュメントツリーのルート
    SFXAnsiStringConstRef name   // 参照するエンティティ名
    Bool clonechild = true       // 子ノードを再帰的にコピーするかどうか【無効】
);
[ public, explicit ]
SFXXMLEntityReference(
    SFXXMLEntityReferenceConstRef other   // EntityReference ノード
    Bool deep = false                     // 子ノードを再帰的にコピーするかどうか
);

解説

このコンストラクタは、指定された値をこのノードに設定します。

引数には、このノードを所有するドキュメントツリーのルート(SFXXMLDocument)と参照するエンティティ名、 または別の EntityReference ノードのいずれかを指定することが可能です。

[Note] 注意

name 引数に指定される参照するエンティティ名は、 SFXXMLEntityReference::GetNodeName 関数で取得できる、このノードの nodeName 属性として設定されます。

参照

SFXXMLEntityReference::GetNodeName | SFXXMLDocument


SFXXMLEntityReference::~SFXXMLEntityReference
SFXXMLEntityReference クラスのデストラクタです。
[ public, virtual ]
virtual ~SFXXMLEntityReference(Void);

解説

このデストラクタは、何も行いません。


SFXXMLEntityReference::AppendChild
子ノードの最後にノードを追加します。
[ public, virtual ]
SFCError AppendChild(
    SFXXMLNodeConstPtr newchild   // 追加するノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、指定されたノード(newchild ノード)をこのノードの最後の子ノードとして追加します。

newchild ノードをコピーせずにそのまま追加します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

[Note] newchild 引数が不正になる条件

以下のとき、newchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。

[Note] 注意

newchild 引数には、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れかのノードを指定してください。

[Note] 注意

内部で SFXXMLEntityReference::InsertBefore(newchild, null) を呼び出しています。

参照

SFXXMLEntityReference::InsertBefore | SFXXMLNode::AppendChild | SFXXMLNode


SFXXMLEntityReference::CloneNode
ノードのコピーを作成します。
[ public, virtual ]
SFCError CloneNode(
    SFXXMLNodeHandle clonenode   // コピー先のノード(Handle 型)
    Bool deep                    // 子ノードを再帰的にコピーするかどうか
);

引数

clonenode

コピー先ノードを指定します。

deep

true の場合、子ノードを再帰的にコピーします。

false の場合、ノード自身だけをコピーします。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 失敗したとき: SFERR_FAILED

解説

この関数は、このノードのコピーを作成し、clonenode 引数に返します。

[Note] 子孫ノードのコピー

deep 引数に true を指定すると、このノードの子孫ノードも含めてコピーが行われます。 false を指定した場合は、このノードだけがコピーされます(このノードの子孫ノードはコピーされません)。

参照

SFXXMLEntityReference::SFXXMLEntityReference | SFXXMLNode::CloneNode | SFXXMLNode


SFXXMLEntityReference::GetChildNodes
すべての子ノードを取得します。
[ public, virtual, const ]
DOMNodeListPtr GetChildNodes(Void);

戻り値

すべての子ノード(SFXXMLNode::DOMNodeList へのポインタ)

解説

この関数は、このノードのすべての子ノードを取得します。

[Note] 注意

子ノードが存在しない場合は null を返します。

[Note] 注意

SFXXMLNode::DOMNodeList の各要素は、 SFXXMLNode へのポインタです。

参照

SFXXMLNode::DOMNodeList | SFXXMLNode::GetChildNodes | SFXXMLNode


SFXXMLEntityReference::GetFirstChild
最初の子ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetFirstChild(Void);

戻り値

最初の子ノード

解説

この関数は、このノードの最初の子ノードを取得します。

[Note] 注意

子ノードが存在しない場合は null を返します。

参照

SFXXMLNode::GetFirstChild | SFXXMLNode


SFXXMLEntityReference::GetLastChild
最後の子ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetLastChild(Void);

戻り値

最後の子ノード

解説

この関数は、このノードの最後の子ノードを取得します。

[Note] 注意

子ノードが存在しない場合は null を返します。

参照

SFXXMLNode::GetLastChild | SFXXMLNode


SFXXMLEntityReference::GetNextSibling
次の兄弟ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetNextSibling(Void);

戻り値

次の兄弟ノード

解説

この関数は、このノードの次の兄弟ノードを取得します。

[Note] 注意

次の兄弟ノードが存在しない場合は null を返します。

参照

SFXXMLEntityReference::GetPreviousSibling | SFXXMLNode::GetNextSibling| SFXXMLNode::GetPreviousSibling | SFXXMLNode


SFXXMLEntityReference::GetNodeName
ノードの名前(nodeName 属性値)を取得します。
[ public, virtual, const ]
ACharConstPtr GetNodeName(Void);

戻り値

ノードの名前(nodeName 属性値)

解説

この関数は、このノードの名前(nodeName 属性値)を取得します。

EntityReference ノードの場合、nodeName 属性値は参照するエンティティ名のことです。

[Note] 注意

参照するエンティティ名は、SFXXMLEntityReference::SFXXMLEntityReference コンストラクタの name 引数で設定します。

参照

SFXXMLEntityReference::SFXXMLEntityReference | SFXXMLNode::GetNodeName | SFXXMLNode


SFXXMLEntityReference::GetNodeType
ノードタイプ(nodeType 属性値)を取得します。
[ public, virtual, const ]
NodeType GetNodeType(Void);

戻り値

SFXXMLNode::ENTITY_REFERENCE_NODE

解説

この関数は、このノードのタイプ(nodeType 属性値)を取得します。

EntityReference ノードの場合、nodeType 属性値は SFXXMLNode::ENTITY_REFERENCE_NODE です。

参照

SFXXMLNode::NodeType | SFXXMLNode::GetNodeType | SFXXMLNode


SFXXMLEntityReference::GetParentNode
親ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetParentNode(Void);

戻り値

親ノード

解説

この関数は、このノードの親ノードを取得します。

[Note] 注意

親ノードが存在しない場合は null を返します。

参照

SFXXMLNode::GetParentNode | SFXXMLNode


SFXXMLEntityReference::GetPreviousSibling
前の兄弟ノードを取得します。
[ public, virtual, const ]
SFXXMLNodePtr GetPreviousSibling(Void);

戻り値

前の兄弟ノード

解説

この関数は、このノードの前の兄弟ノードを取得します。

[Note] 注意

前の兄弟ノードが存在しない場合は null を返します。

参照

SFXXMLEntityReference::GetNextSibling | SFXXMLNode::GetPreviousSibling | SFXXMLNode::GetNextSibling | SFXXMLNode


SFXXMLEntityReference::HasChildNodes
子ノードを持つかどうか判定します。
[ public, virtual, const ]
Bool HasChildNodes(Void);

戻り値

  • 子ノードを持つとき: true
  • そうでないとき: false

解説

この関数は、このノードが子ノードを持つかどうか判定します。

参照

SFXXMLNode::HasChildNodes | SFXXMLNode


SFXXMLEntityReference::InsertBefore
ノードを挿入します。
[ public, virtual ]
SFCError InsertBefore(
    SFXXMLNodeConstPtr newchild   // 挿入するノード
    SFXXMLNodeConstPtr refchild   // 参照ノード、このノードの直前に挿入される(refchild が null の場合、newchild は最後の子ノードとして挿入される)
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild / refchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、newchild 引数に指定されたノード(newchild ノード)を refchild 引数に指定されたノード(refchild ノード)の前に挿入します。

newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、refchild ノードの直前に挿入します。

refchild ノードが null の場合は、一番最後の子ノードとして挿入します。 また、newchild ノードと refchild ノードが同じノードを指す場合、何も起こりません。

[Note] newchild / refchild 引数が不正になる条件

以下のとき、newchild / refchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • refchild ノードの親がこのノードでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。
  • newchild ノードが、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れのノードでもない場合。

参照

SFXXMLNode::InsertBefore | SFXXMLNode


SFXXMLEntityReference::RemoveChild
子孫ノードも含めて子ノードを削除します。
[ public, virtual ]
SFCError RemoveChild(
    SFXXMLNodeConstPtr oldchild   // 削除する子ノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • oldchild 引数が null であるとき、またはこのノードの子ノードでないとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、このノードから子孫ノードも含めて指定された子ノードを削除します。

参照

SFXXMLNode::RemoveChild | SFXXMLNode


SFXXMLEntityReference::ReplaceChild
子ノードを置換します。
[ public, virtual ]
SFCError ReplaceChild(
    SFXXMLNodeConstPtr newchild   // 置換後ノード
    SFXXMLNodeConstPtr oldchild   // 置換前ノード
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • newchild / oldchild 引数が不正であるとき: SFERR_INVALID_PARAM
  • メモリ不足のとき: SFERR_NO_MEMORY
  • 失敗したとき: SFERR_FAILED

解説

この関数は、oldchild 引数に指定されたこのノードの子ノード(oldchild ノード)を newchild 引数に指定されたノード(newchild ノード)で置換します。

newchild ノードをコピーせずにそのまま挿入します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。

oldchild ノード以下の子孫ノードは、DOM ツリーから削除され、メモリも解放されます。

newchild ノードが DocumentFragment ノードの場合、 newchild ノードの代わりにその子ノードのすべてを元の順番どおりに、oldchild ノードを置換します。

newchild ノードと oldchild ノードが同じである場合は、何も起こりません。

[Note] newchild / oldchild 引数が不正になる条件

以下のとき、newchild / oldchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。

  • newchild ノード、またはoldchild ノードが null の場合。
  • newchild ノードを所有するドキュメントツリーのルートが、 このノードを所有するドキュメントツリーのルートでない場合。
  • oldchild ノードの親がこのノードでない場合。
  • newchild ノードが、このノードまたはこのノードの祖先ノードである場合。

[Note] 注意

newchild 引数には、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れかのノードを指定してください。

[Tip] Tip

内部では、SFXXMLEntityReference::InsertBefore(newchild, oldchild) を呼び出してから、 SFXXMLEntityReference::RemoveChild(oldchild) を実行します。

参照

SFXXMLEntityReference::InsertBefore | SFXXMLEntityReference::RemoveChild | SFXXMLNode::ReplaceChild | SFXXMLNode