アプリ版:「スタンプのみでお礼する」機能のリリースについて

C++でXML変換プログラムをつくっています。
Xerces c++ (3.0.1)というのを使っているのですが、
ネットでみたところ、パーサの初期化に大きく2通りあるみたいです。

<方法1>
char* xmlFile = "employees.xml";
XercesDOMParser* parser = new XercesDOMParser();
parser->parse(xmlFile);
DOMDocument* doc = parser->getDocument();

<方法2>
char* xmlFile = "employees.xml";
static const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };
DOMImplementation* impl = DOMImplementationRegistry::getDOMImplementation(gLS);
DOMLSParser* parser = ((DOMImplementationLS*)impl)->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
DOMDocument* doc = parser->parseURI(xmlFile);

どちらもうまくいくのですが、方法2のやっていることの意味がよくわかりません。他にも、
impl = DOMImplementation::getImplementation() ;
ですとか
impl = DOMImplementationRegistry::getDOMImplementation(XMLString::transcode("LS"));
なども見受けられます。

方法1のように普通に生成するのと、LS指定するのと何か違うのでしょうか。

javaにorg.w3c.dom.lsパッケージなどがあるみたいですし、
http://java.sun.com/javase/ja/6/docs/ja/api/org/ …
などをみると「ロードおよび保存」とあるので、load と save のことかとも思えるのですが、それが何なのかよくわからないのです。
LSが何を指すのか、方法2のように生成するのがどんな意味があるのかわかる方、教えていただけませんか。

環境:
WindowsXP SP3
Visual Studio 2008 SP1

A 回答 (1件)

これの事じゃないかな。


http://xerces.apache.org/xerces-c/apiDocs-3/clas …

> Detailed Description
> DOMImplementationLS contains the factory methods for creating Load and Save objects.
>
> An object that implements DOMImplementationLS is obtained by doing a binding specific cast from DOMImplementation to DOMImplementationLS. Implementations supporting the Load and Save feature must implement the DOMImplementationLS interface on whatever object implements the DOMImplementation interface.
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
apiはみたつもりでちゃんと読んでませんでした。
Load and Save でいいみたいですね。

引き続き調べたところ、DOMレベル3の勧告で Load and Save Specification というのがありました。
http://www.w3.org/TR/DOM-Level-3-LS/

別サイトに「プラットフォーム及び言語に依存しない方法で XML 文書やデータの読み込みや書き出しが可能」とあるのですが、わかるようなわからないような。読み込み・書き込みの方法を規定したってことでしょうか。

お礼日時:2009/06/19 22:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!