![]() ![]() ![]() ![]() |
SophiaFramework UNIVERSE 5.2 |
Entity ノード(SFXXMLEntity)は、 XML 文書の解析対象エンティティ(Parsed Entity)、 または解析対象外エンティティ(Unparsed Entity)を保持します。
![]() |
解析対象エンティティ(Parsed Entity)と解析外対象エンティティ(Unparsed Entity) |
---|---|
解析対象エンティティ(Parsed Entity)とは、 その内容がテキストであり、 XML 文書内にエンティティ参照があればその内容が XML 文書の一部として取り込まれるオブジェクトです。 以下のようにして、XML 文書内で参照すると、その内容に置き換えられます。 &エンティティ名;
図などのビットマップ情報のように XML 形式で表現できないデータをエンティティとして扱う場合、 これを解析外対象エンティティ(Unparsed Entity)と呼びます。 ポストスクリプトや TeX などテキストで記述されたデータも解析外対象エンティティになり得ます。 解析外対象エンティティは、XML プロセッサによりタグの解析は行われません。 解析外対象エンティティは、ENTITY 型、ENTITIES 型の属性値としてのみ参照可能であり、 解析対象エンティティのように、以下の形式で参照することはできません。 &エンティティ名; ※ 解析外対象エンティティは、アプリケーションに処理方法を判断させるための記法名(Notation)を持ちます。 |
![]() |
内部エンティティ(Internal Entity)と外部エンティティ(External Entity) |
---|---|
内部エンティティ(Internal Entity)とは、 エンティティ宣言の中にエンティティの内容が文字列として記述されているエンティティのことです。 一方、外部エンティティ(External Entity)とは、 エンティティの内容が外部ファイルに記述されているエンティティのことです。 解析対象外エンティティは、XML 以外の形式で記述されるので必ず外部エンティティです。 |
![]() |
システム識別子(System Identifier)と公開識別子(Public Identifier) |
---|---|
システム識別子(System Identifier)とは、 外部サブセットの位置を示すもので、URIで表現されます。 XML プロセッサは、この位置情報から外部サブセットを入手します。 公開識別子(Public Identifier)とは、 XML プロセッサが識別できる、特定の外部サブセットを表す文字列のことです。 認識できない場合のために、公開識別子の後ろにシステム識別子を指定することも可能です。 具体的には、 PUBLIC "公開識別子" "システム識別子" のように指定します。 |
![]() |
注意 |
---|---|
SophiaFramework UNIVERSE のパーサー(SFXXMLDOMParser / SFXXMLSAXParser)の仕様では、 エンティティ参照は展開されないことに注意してください。 |
コンストラクタ/デストラクタ |
---|
SFXXMLEntity(
SFXXMLDocumentPtr owner
, SFXAnsiStringConstRef name
) SFXXMLEntity クラスのコンストラクタです。
|
SFXXMLEntity(
SFXXMLEntityConstRef other
, Bool deep = false
) SFXXMLEntity クラスのコンストラクタです。
|
~SFXXMLEntity( Void ) SFXXMLEntity クラスのデストラクタです。
|
パブリック関数 | |
---|---|
SFCError |
AppendChild(
SFXXMLNodeConstPtr newchild
) 子ノードの最後にノードを追加します。
|
SFCError |
CloneNode(
SFXXMLNodeHandle clonenode
, Bool deep
) ノードのコピーを作成します。
|
DOMNodeListPtr |
GetChildNodes( Void ) すべての子ノードを取得します。
|
ACharConstPtr |
GetEncoding( Void ) エンコーディングを取得します。
|
SFXXMLNodePtr |
GetFirstChild( Void ) 最初の子ノードを取得します。
|
SFXXMLNodePtr |
GetLastChild( Void ) 最後の子ノードを取得します。
|
SFXXMLNodePtr |
GetNextSibling( Void ) 次の兄弟ノードを取得します。
|
ACharConstPtr |
GetNodeName( Void ) ノードの名前(nodeName 属性値)を取得します。
|
NodeType |
GetNodeType( Void ) ノードタイプ(nodeType 属性値)を取得します。
|
ACharConstPtr |
GetNodeValue( Void ) ノードの値(nodeValue 属性値)を取得します。
|
ACharConstPtr |
GetNotationName( Void ) 記法名を取得します。
|
SFXXMLNodePtr |
GetPreviousSibling( Void ) 前の兄弟ノードを取得します。
|
ACharConstPtr |
GetPublicID( Void ) 公開識別子を取得します。
|
ACharConstPtr |
GetSystemID( Void ) システム識別子を取得します。
|
ACharConstPtr |
GetValue( Void ) ノードの値(nodeValue 属性値)を取得します。
|
ACharConstPtr |
GetVersion( Void ) バージョン番号を取得します。
|
Bool |
HasChildNodes( Void ) 子ノードを持つかどうか判定します。
|
SFCError |
InsertBefore(
SFXXMLNodeConstPtr newchild
, SFXXMLNodeConstPtr refchild
) ノードを挿入します。
|
SFCError |
RemoveChild(
SFXXMLNodeConstPtr oldchild
) 子孫ノードも含めて子ノードを削除します。
|
SFCError |
ReplaceChild(
SFXXMLNodeConstPtr newchild
, SFXXMLNodeConstPtr oldchild
) 子ノードを置換します。
|
Void |
SetEncoding(
ACharConstPtr encoding
) エンコーディングを設定します。
|
Void |
SetNodeValue(
ACharConstPtr value
) ノードの値(nodeValue 属性値)を設定します。
|
Void |
SetNotationName(
ACharConstPtr name
) 記法名を設定します。
|
Void |
SetPublicID(
ACharConstPtr id
) 公開識別子を設定します。
|
Void |
SetSystemID(
ACharConstPtr id
) システム公開識別子を設定します。
|
Void |
SetValue(
SFXAnsiStringConstRef value
) ノードの値(nodeValue 属性値)を設定します。
|
Void |
SetVersion(
ACharConstPtr version
) バージョン番号を設定します。
|
Bool |
EqualNode(
SFXXMLNodeConstPtr arg
)
(SFXXMLNode から継承)
指定されたノードと同等かどうかを判定します。
|
SFXXMLNodePtr |
GetParentNode( 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 ] SFXXMLEntity( SFXXMLDocumentPtr owner // ドキュメントツリーのルート SFXAnsiStringConstRef name // エンティティ名 );
[ public, explicit ] SFXXMLEntity( SFXXMLEntityConstRef other // Entity ノード Bool deep = false // 子ノードを再帰的にコピーするかどうか );
このコンストラクタは、指定された値をこのノードに設定します。
引数には、このノードを所有するドキュメントツリーのルート(SFXXMLDocument)とエンティティ名、 または別の Entity ノードのいずれかを指定することが可能です。
![]() |
注意 |
---|---|
name 引数に指定されるエンティティ名は、 SFXXMLEntity::GetNodeName 関数で取得できる、 このノードの nodeName 属性として設定されます。 |
[ public, virtual ] virtual ~SFXXMLEntity(Void);
このデストラクタは、何も行いません。
[ public, virtual ] SFCError AppendChild( SFXXMLNodeConstPtr newchild // 追加するノード );
この関数は、指定されたノード(newchild ノード)をこのノードの最後の子ノードとして追加します。
newchild ノードをコピーせずにそのまま追加します。 newchild ノードが既に DOM ツリー内に存在する場合は、 最初に DOM ツリーからその子ノードを削除します。
![]() |
newchild 引数が不正になる条件 |
---|---|
以下のとき、newchild 引数は不正となり、SFERR_INVALID_PARAM エラーが返ります。
|
![]() |
注意 |
---|---|
newchild 引数には、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れかのノードを指定してください。 |
![]() |
注意 |
---|---|
内部で SFXXMLEntity::InsertBefore(newchild, null) を呼び出しています。 |
[ public, virtual ] SFCError CloneNode( SFXXMLNodeHandle clonenode // コピー先のノード(Handle 型) Bool deep // 子ノードを再帰的にコピーするかどうか );
コピー先ノードを指定します。
true の場合、子ノードを再帰的にコピーします。
false の場合、ノード自身だけをコピーします。
この関数は、このノードのコピーを作成し、clonenode 引数に返します。
![]() |
子孫ノードのコピー |
---|---|
deep 引数に true を指定すると、このノードの子孫ノードも含めてコピーが行われます。 false を指定した場合は、このノードだけがコピーされます(このノードの子孫ノードはコピーされません)。 |
[ public, virtual, const ] DOMNodeListPtr GetChildNodes(Void);
すべての子ノード(SFXXMLNode::DOMNodeList へのポインタ)
この関数は、このノードのすべての子ノードを取得します。
![]() |
注意 |
---|---|
子ノードが存在しない場合は null を返します。 |
![]() |
注意 |
---|---|
SFXXMLNode::DOMNodeList の各要素は、 SFXXMLNode へのポインタです。 |
[ public, const ] ACharConstPtr GetEncoding(Void);
この Entity ノードが表すエンティティのエンコーディング
この関数は、この Entity ノードが外部解析対象エンティティを表すノードである場合、 テキスト宣言の一部として、この Entity ノードが表すエンティティのエンコーディングを取得します。
外部解析対象外エンティティである場合は、null を返します。
[ public, virtual, const ] SFXXMLNodePtr GetFirstChild(Void);
最初の子ノード
この関数は、このノードの最初の子ノードを取得します。
![]() |
注意 |
---|---|
子ノードが存在しない場合は null を返します。 |
[ public, virtual, const ] SFXXMLNodePtr GetLastChild(Void);
最後の子ノード
この関数は、このノードの最後の子ノードを取得します。
![]() |
注意 |
---|---|
子ノードが存在しない場合は null を返します。 |
[ public, virtual, const ] SFXXMLNodePtr GetNextSibling(Void);
次の兄弟ノード
この関数は、このノードの次の兄弟ノードを取得します。
![]() |
注意 |
---|---|
次の兄弟ノードが存在しない場合は null を返します。 |
SFXXMLEntity::GetPreviousSibling | SFXXMLNode::GetNextSibling| SFXXMLNode::GetPreviousSibling | SFXXMLNode
[ public, virtual, const ] ACharConstPtr GetNodeName(Void);
ノードの名前(nodeName 属性値)
この関数は、このノードの名前(nodeName 属性値)を取得します。
Entity ノードの場合、nodeName 属性値はエンティティ名のことです。
![]() |
注意 |
---|---|
SFXXMLAttribute::GetName 関数を呼び出すのと同等です。 |
[ public, virtual, const ] NodeType GetNodeType(Void);
SFXXMLNode::ENTITY_NODE
この関数は、このノードのタイプ(nodeType 属性値)を取得します。
Entity ノードの場合、nodeType 属性値は SFXXMLNode::ENTITY_NODE です。
[ public, virtual, const ] ACharConstPtr GetNodeValue(Void);
ノードの値(nodeValue 属性値)
この関数は、このノードの値(nodeValue 属性値)を取得します。
Entity ノードの場合、 nodeValue 属性値はエンティティが参照されたときに置き換えられる文字列です。
![]() |
注意 |
---|---|
SFXXMLEntity::GetValue 関数を呼び出すのと同等です。 |
SFXXMLEntity::SetValue | SFXXMLNode::SetNodeValue | SFXXMLEntity::GetValue | SFXXMLNode::GetNodeValue | SFXXMLNode
[ public, const ] ACharConstPtr GetNotationName(Void);
この Entity ノードを表すエンティティの記法名(Notation)
この関数は、この Entity ノードが外部解析対象外エンティティを表すノードである場合、 このエンティティの記法名を取得します。
外部解析対象エンティティである場合は、null を返します。
[ public, virtual, const ] SFXXMLNodePtr GetPreviousSibling(Void);
前の兄弟ノード
この関数は、このノードの前の兄弟ノードを取得します。
![]() |
注意 |
---|---|
前の兄弟ノードが存在しない場合は null を返します。 |
SFXXMLEntity::GetNextSibling | SFXXMLNode::GetPreviousSibling | SFXXMLNode::GetNextSibling | SFXXMLNode
[ public, const ] ACharConstPtr GetPublicID(Void);
公開識別子
この関数は、このノードの公開識別子を取得します。
設定されていない場合は、null を返します。
[ public, const ] ACharConstPtr GetSystemID(Void);
システム識別子
この関数は、このノードのシステム識別子を取得します。
設定されていない場合は、null を返します。
![]() |
注意 |
---|---|
戻り値のシステム識別子は、絶対 URI である場合と、そうでない場合があります。 |
[ public, const ] ACharConstPtr GetValue(Void);
ノードの値(nodeValue 属性値)
この関数は、このノードの値(nodeValue 属性値)を取得します。
Entity ノードの場合、 nodeValue 属性値はエンティティが参照されたときに置き換えられる文字列です。
![]() |
注意 |
---|---|
SFXXMLEntity::GetNodeValue 関数を呼び出すのと同等です。 |
[ public, const ] ACharConstPtr GetVersion(Void);
この Entity ノードを表すエンティティのバージョン番号
この関数は、この Entity ノードが外部解析対象エンティティを表すノードである場合、 テキスト宣言の一部として、このエンティティのバージョン番号を取得します。
外部解析対象外エンティティである場合は、null を返します。
[ 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 引数には、Element / ProcessingInstruction / Text / Comment / CDATASection / EntityReference の何れかのノードを指定してください。 |
![]() |
Tip |
---|---|
内部では、SFXXMLEntity::InsertBefore(newchild, oldchild) を呼び出してから、 SFXXMLEntity::RemoveChild(oldchild) を実行します。 |
[ public ] Void SetEncoding( ACharConstPtr encoding // エンコーディング );
この関数は、この Entity ノードが外部解析対象エンティティを表すノードである場合に限り、 テキスト宣言の一部として、このエンティティのエンコーディングを設定します。
外部解析対象外エンティティである場合は、null を設定します。
[ public, virtual ] Void SetNodeValue( ACharConstPtr value // エンティティが参照されたときに置き換えられる文字列 );
この関数は、このノードの値(nodeValue 属性値)を指定された値に設定します。
Entity ノードの場合、 nodeValue 属性値はエンティティが参照されたときに置き換えられる文字列です。
![]() |
注意 |
---|---|
SFXXMLEntity::SetValue 関数を呼び出すのと同等です。 |
[ public ] Void SetNotationName( ACharConstPtr name // エンティティの記法名 );
この関数は、この Entity ノードが外部解析対象外エンティティを表すノードである場合に限り、 このエンティティの記法名を設定します。
外部解析対象エンティティである場合は、null を設定します。
[ public ] Void SetPublicID( ACharConstPtr id // 公開識別子 );
この関数は、このノードに指定された公開識別子を設定します。
[ public ] Void SetSystemID( ACharConstPtr id // システム識別子 );
この関数は、このノードに指定されたシステム識別子を設定します。
[ public ] Void SetValue( SFXAnsiStringConstRef value // エンティティが参照されたときに置き換えられる文字列 );
この関数は、このノードの値(nodeValue 属性値)を指定された値に設定します。
Entity ノードの場合、 nodeValue 属性値はエンティティが参照されたときに置き換えられる文字列です。
![]() |
注意 |
---|---|
SFXXMLEntity::SetNodeValue 関数を呼び出すのと同等です。 |
[ public ] Void SetVersion( ACharConstPtr version // バージョン番号 );
この関数は、この Entity ノードが外部解析対象エンティティを表すノードである場合に限り、 テキスト宣言の一部として、このエンティティのバージョン番号を設定します。
外部解析対象外エンティティである場合は、null を設定します。
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]() ![]() |