前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework 4.1
SFXXMLDocumentType
[XML] DocumentType ノードを表すクラスです。
#include <SFXXMLDocumentType.hpp>
class SFXXMLDocumentType : public SFXXMLNode;
SFMTYPEDEFCLASS(SFXXMLDocumentType)

継承図

SFXXMLDocumentType クラスの継承図

協調図

SFXXMLDocumentType クラスの協調図

解説

DocumentType ノード (SFXXMLDocumentType) は、 XML 文書の文書型を保持します。

[Note] 注意
DocumentType ノードは SFXXMLDocument::SetDocumentType などの関数を使って Document ノード (SFXXMLDocument) に関連付けます。

参照

SFXXMLNode | SFXXMLAttribute | SFXXMLCDATASection | SFXXMLComment | SFXXMLDocument | SFXXMLDocumentFragment | SFXXMLElement | SFXXMLEntity | SFXXMLEntityReference | SFXXMLNotation | SFXXMLProcessingInstruction | SFXXMLText

メンバ

コンストラクタ/デストラクタ
SFXXMLDocumentType( SFXXMLDocumentPtr owner , SFXAnsiStringConstRef name , SFXAnsiStringConstRef publicId , SFXAnsiStringConstRef systemId )
SFXXMLDocumentType( SFXXMLDocumentTypeConstRef other , Bool deep = false )
SFXXMLDocumentType クラスのコンストラクタです。
~SFXXMLDocumentType( Void )
SFXXMLDocumentType クラスのデストラクタです。
パブリック関数
SFCError AppendChild( SFXXMLNodeConstPtr newchild )
子ノードの最後にノードを追加します。
SFCError CloneNode( SFXXMLNodeHandle clonenode , Bool deep )
ノードのコピーを作成します。
Bool EqualNode( SFXXMLNodeConstPtr arg )
指定したノードと同等かどうかを判定します。
DOMNodeListPtr GetChildNodes( Void )
すべての子ノードを取得します。
DOMNamedNodeMapPtr GetEntities( Void )
DOM ツリー内のすべての Entity ノードを取得します。
SFXXMLNodePtr GetFirstChild( Void )
最初の子ノードを取得します。
ACharConstPtr GetInternalSubset( Void )
内部サブセットを取得します。
SFXXMLNodePtr GetLastChild( Void )
最後の子ノードを取得します。
ACharConstPtr GetName( Void )
ノードの名前を取得します。
SFXXMLNodePtr GetNextSibling( Void )
次の兄弟ノードを取得します。
ACharConstPtr GetNodeName( Void )
ノードの名前を取得します。
NodeType GetNodeType( Void )
ノード タイプを取得します。
DOMNamedNodeMapPtr GetNotations( Void )
DOM ツリー内の Notation ノードをすべて取得します。
SFXXMLNodePtr GetParentNode( Void )
親ノードを取得します。
SFXXMLNodePtr GetPreviousSibling( Void )
前の兄弟ノードを取得します。
ACharConstPtr GetPublicID( Void )
外部サブセットの公開識別子を取得します。
ACharConstPtr GetSystemID( Void )
外部サブセットのシステム識別子を取得します。
Bool HasChildNodes( Void )
子ノードを持つかどうかを判定します。
SFCError InsertBefore( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr refchild )
ノードを挿入します。
SFCError RemoveChild( SFXXMLNodeConstPtr oldchild )
子孫ノードも含めて子ノードを削除します。
SFCError ReplaceChild( SFXXMLNodeConstPtr newchild , SFXXMLNodeConstPtr oldchild )
子ノードを置換します。
Void SetInternalSubset( SFXAnsiStringConstRef intsubset )
内部サブセットを設定します。
ACharConstPtr GetNodeValue( Void ) (SFXXMLNode から継承)
ノードの値を取得します。
SFXAnsiString GetText( Void ) (SFXXMLNode から継承)
ノード テキストを取得します。
Bool IsSameNode( SFXXMLNodeConstPtr other ) (SFXXMLNode から継承)
指定したノードと同一であるかを判定します。
Void SetNodeValue( ACharConstPtr value ) (SFXXMLNode から継承)
ノードに値を設定します。
SFCError SetText( SFXAnsiStringConstRef text ) (SFXXMLNode から継承)
ノード テキストを設定します。
DOMNamedNodeMap (SFXXMLNode から継承)
複数の DOM ノードを名前で管理するためのクラスです。
DOMNodeList (SFXXMLNode から継承)
複数の DOM ノードをリスト形式で管理するためのクラスです。
NodeType (SFXXMLNode から継承)
ノード タイプの数値です。

SFXXMLDocumentType::SFXXMLDocumentType
SFXXMLDocumentType クラスのコンストラクタです。
[ public, explicit ]
SFXXMLDocumentType(
    SFXXMLDocumentPtr owner          // ルート
    SFXAnsiStringConstRef name       // DocumentType の名前 
    SFXAnsiStringConstRef publicId   // 外部サブセットの公開識別子 
    SFXAnsiStringConstRef systemId   // 外部サブセットのシステム識別子 
);
[ public, explicit ]
SFXXMLDocumentType(
    SFXXMLDocumentTypeConstRef other   // SFXXMLDocumentType のインスタンス 
    Bool deep = false                  // 子を再帰的にコピーするかどうか
);

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

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

戻り値

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

解説

newchild ノードをコピーせずにそのまま追加します。

newchild ノードが別の DOM ツリー内に存在する場合、その DOM ツリー内からは削除されます。

参照

SFXXMLNode::AppendChild | SFXXMLNode


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

引数

clonenode

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

deep

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

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

戻り値

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

参照

SFXXMLNode::CloneNode | SFXXMLNode


SFXXMLDocumentType::EqualNode
指定したノードと同等かどうかを判定します。
[ public, virtual, const ]
Bool EqualNode(
    SFXXMLNodeConstPtr arg   // 同等性を比較する対象のノード 
);

参照

SFXXMLNode::EqualNode | SFXXMLNode


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

戻り値

指定したノードのすべての子ノードを SFXXMLNode::DOMNodeList へのポインターとして返します。子ノードがないときは null を返します。

解説

[Note] 注意
SFXXMLNode::DOMNodeList の各要素は、SFXXMLNode 型へのポインターです。

参照

SFXXMLNode::DOMNodeList | SFXXMLNode::GetChildNodes | SFXXMLNode


SFXXMLDocumentType::GetEntities
DOM ツリー内のすべての Entity ノードを取得します。
[ public, const ]
DOMNamedNodeMapPtr GetEntities(Void);

戻り値

DOM ツリー内のすべての Entity ノードを SFXXMLNode::DOMNamedNodeMap へのポインターとして返します。Entity ノードがないときは null を返します。

解説

[Note] 注意
DTD で宣言されている、すべてのエンティティを取得します。

使用例

<?xml version="1.0" encoding="shift_JIS" standalone="yes" ?>
<!DOCTYPE 名簿[
<!ELEMENT 名簿 (名前,メールアドレス)>
<!ENTITY Account "sophia">
<!ENTITY Email "&Account;@s-cradle.com">
<!ELEMENT 名前 "(#PCDATA)">
<!ELEMENT メールアドレス "(#PCDATA)">
<!ATTLIST 名前 番号 (001|002|003) #REQUIRED>
]>
<名簿>
   <名前 番号="001">Sophia Cradle</名前>
  <メールアドレス>&Email;</メールアドレス>
</名簿> 

// ルート ノードから DocumentType ノードを取得する
SFXXMLDocumentTypePtr docType = root->GetDocumentType();
if (docType) {
    // DOM ツリー内のすべての Entity ノードを取得する
    SFXXMLNode::DOMNamedNodeMapPtr nodemap = docType->GetEntities();
    if (nodemap) {
        // "Name" Entiry ノードを取得する
        SFXXMLEntityPtr name = SFXXMLEntityPtr(nodemap->Item(0));
        // "Email" Entiry ノードを取得する
        SFXXMLEntityPtr mail = SFXXMLEntityPtr(nodemap->Item(1));
        ....
        
        // 新しい Entiry ノードを追加する "<!ENTITY 会社 SYSTEM "company.dtd">"
        SFXXMLEntityPtr entity = document.CreateEntity("会社");
        entity->SetSystemID("company.dtd");
        nodemap->SetNamedItem(entity);
    }
}

参照

SFXXMLNode::DOMNamedNodeMap | SFXXMLEntity | SFXXMLNode


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

戻り値

最初の子ノードを返します。子ノードがないときは null を返します。

参照

SFXXMLNode::GetFirstChild | SFXXMLNode


SFXXMLDocumentType::GetInternalSubset
内部サブセットを取得します。
[ public, const ]
ACharConstPtr GetInternalSubset(Void);

戻り値

内部サブセットが存在するときはそれを文字列として返し、そうでないときは null を返します。なお、戻り値に区切り用の角括弧は含まれません。

参照

SFXXMLDocumentType::SetInternalSubset


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

戻り値

最後の子ノードを返します。子ノードがないときは null を返します。

参照

SFXXMLNode::GetLastChild | SFXXMLNode


SFXXMLDocumentType::GetName
ノードの名前を取得します。
[ public, const ]
ACharConstPtr GetName(Void);

解説

DocumentType ノードの名前(文書型名)を取得します。

SFXXMLDocumentType::GetNodeName 関数を呼び出すのと同等です。

参照

SFXXMLDocumentType::GetNodeName


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

戻り値

次の兄弟ノードを返します。次の兄弟ノードがないときは null を返します。

参照

SFXXMLDocumentType::GetPreviousSibling | SFXXMLNode::GetNextSibling | SFXXMLNode::GetPreviousSibling | SFXXMLNode


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

解説

DocumentType ノードの名前(文書型名)を取得します。

SFXXMLDocumentType::GetName 関数を呼び出すのと同等です。

参照

SFXXMLDocumentType::GetNodeName | SFXXMLNode::GetNodeName | SFXXMLNode


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

戻り値

DOCUMENT_TYPE_NODE を返します。

参照

SFXXMLNode::NodeType | SFXXMLNode::GetNodeType | SFXXMLNode


SFXXMLDocumentType::GetNotations
DOM ツリー内の Notation ノードをすべて取得します。
[ public, const ]
DOMNamedNodeMapPtr GetNotations(Void);

解説

DOM ツリー内の、すべての Notation ノードを取得します。

[Note] 注意
DTD で宣言されている、すべての記法を取得します。

使用例

<?xml version="1.0" encoding="shift_JIS" standalone="yes" ?>
<!DOCTYPE スタジオ [
<!ELEMENT スタジオ ANY>
<!ELEMENT マルチメディア (#PCDATA)>
<!ATTLIST マルチメディア player NOTATION (rm|gif|midi) #REQUIRED>
<!NOTATION gif SYSTEM "Image/gif">
<!NOTATION rm SYSTEM "RealPlayer.exe">
<!NOTATION midi SYSTEM "wmplayer.exe">
]>
<スタジオ>
   <マルチメディア player="rm"></マルチメディア>
</スタジオ>

// ルート ノードから DocumentType ノードを取得する
SFXXMLDocumentTypePtr docType = root->GetDocumentType();
if (docType) {
    // Notation ノードをすべて取得する
    SFXXMLNode::DOMNamedNodeMapPtr nodemap = docType->GetNotations();
    if (nodemap) {
        // gif 表記法(Notation ノード)を取得する
        SFXXMLNotationPtr gif = SFXXMLNotationPtr(nodemap->Item(0));
        // rm 表記法(Notation ノード)を取得する
        SFXXMLNotationPtr rm = SFXXMLNotationPtr(nodemap->Item(1));
        // midi 表記法(Notation ノード)を取得する
        SFXXMLNotationPtr midi = SFXXMLNotationPtr(nodemap->Item(2));
        ....
            
        // 新しい表記法(Notation ノード)追加する "<!NOTATION mp3 SYSTEM "winamp.exe">"
        SFXXMLNotationPtr mp3 = document.CreateNotation("mp3");
        mp3->SetSystemID("winamp.exe");
        nodemap->SetNamedItem(mp3);
    }
}

参照

SFXXMLNotation | SFXXMLNode


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

戻り値

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

参照

SFXXMLNode::GetParentNode | SFXXMLNode


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

戻り値

指定したノードの前の兄弟ノードを返します。前の兄弟ノードがないときは null を返します。

参照

SFXXMLDocumentType::GetNextSibling | SFXXMLNode::GetPreviousSibling | SFXXMLNode::GetNextSibling | SFXXMLNode


SFXXMLDocumentType::GetPublicID
外部サブセットの公開識別子を取得します。
[ public, const ]
ACharConstPtr GetPublicID(Void);

SFXXMLDocumentType::GetSystemID
外部サブセットのシステム識別子を取得します。
[ public, const ]
ACharConstPtr GetSystemID(Void);

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

戻り値

  • 持つとき : true
  • 持たないとき : false

参照

SFXXMLNode::HasChildNodes | SFXXMLNode


SFXXMLDocumentType::InsertBefore
ノードを挿入します。
[ public, virtual ]
SFCError InsertBefore(
    SFXXMLNodeConstPtr newchild   // 挿入するノード
    SFXXMLNodeConstPtr refchild   // 参照ノード、このノードの直前に挿入される
);

戻り値

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

参照

SFXXMLNode::InsertBefore | SFXXMLNode


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

戻り値

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

参照

SFXXMLNode::RemoveChild | SFXXMLNode


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

戻り値

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

参照

SFXXMLNode::ReplaceChild | SFXXMLNode


SFXXMLDocumentType::SetInternalSubset
内部サブセットを設定します。
[ public ]
Void SetInternalSubset(
    SFXAnsiStringConstRef intsubset   // 設定する内部サブセット 
);

参照

SFXXMLDocumentType::GetInternalSubset