ヘッダーをスキップ
Oracle® Database XML C APIリファレンス
11gリリース2 (11.2)
E94918-01
  目次へ
目次
索引へ移動
索引

前へ
前へ
 
次へ
次へ
 

付録 Oracle Database10gリリース1の前に使用されていたAPIのマッピング

この章では、Oracle9iリリースで使用可能なXML C APIを、このリリースのOracle Databaseで使用可能な統一XML C APIにマッピングする方法について説明します。

この章の内容は次のとおりです。


関連項目:

『Oracle XML Developer's Kitプログラマーズ・ガイド』のフォーマット・モデルに関する項

Cパッケージの変更点

既存のC APIはoraxmlパッケージで使用できました。これには次のような特性がありました。

これに対して、新しい統一C APIではこれらの問題が解決されています。

初期化と解析順序の変更点

統一C APIではドキュメントの初期化と解析が変更されました。

例A-1 統一前のC APIを使用した初期化と解析の順序: 一度に1ドキュメント

次の擬似コードは、古いC APIを使用してドキュメントを一度に1つずつ初期化し、解析する方法を示しています。例A-2の例と比較してください。

#include <oraxml.h>
uword err;
xmlctx *ctx = xmlinit(&err, options);
for (;;)
{
   err = xmlparse(ctx, URI, options);
   ...
   /* DOM operations */
   ...
   /* recycle memory from document */
   xmlclean(ctx);
}
xmlterm(ctx);

例A-2 統一C APIを使用した初期化と解析の順序: 一度に1ドキュメント

次の擬似コードは、新しいC APIを使用してドキュメントを一度に1つずつ初期化し、解析する方法を示しています。例A-1の例と比較してください。

#include <xml.h>
xmlerr err;
xmldocnode *doc;
xmlctx *xctx = XmlCreate(&err, options, NULL);
for (;;)
{
   doc = XmlLoadDom(xctx, &err, "URI", URI, NULL);
   ...
   /* DOM operations */
   ...
   XmlFreeDocument(xctx, doc);
}
XmlDestroy(xctx);

例A-3 統一前のC APIを使用した初期化と解析の順序: 複数ドキュメントおよび同時DOMアクセス

次の擬似コードは、古いC APIを使用して同時DOMアクセスにより複数のドキュメントを初期化し、解析する方法を示しています。例A-4の例と比較してください。

xmlctx *ctx1 = xmlinitenc(&err, options);
xmlctx *ctx2 = xmlinitenc(&err, options);
err = xmlparse(ctx1, URI_1, options);
err = xmlparse(ctx2, URI_2, options);
...
/* DOM operations for both documents */
...
xmlterm(ctx1);
xmlterm(ctx2);

例A-4 統一C APIを使用した初期化と解析の順序: 複数ドキュメントおよび同時DOMアクセス

次の擬似コードは、新しいC APIを使用して同時DOMアクセスにより複数のドキュメントを初期化し、解析する方法を示しています。例A-3の例と比較してください。

xmldocnode *doc1;
xmldocnode *doc2;
xmlctx *xctx = XmlCreate(&err, options, NULL);
doc1 = XmlLoadDom(xctx, &err, "URI", URI_1, NULL);
doc2 = XmlLoadDom(xctx, &err, "URI", URI_2, NULL);
...
/* DOM operations for both documents*/
...
XmlFreeDocument(xctx, doc1);
XmlFreeDocument(xctx, doc2);
...
XmlDestroy(xctx);

oraxmlパッケージとxmlパッケージ間のデータ型のマッピング

表A-1に新しいC APIにおけるデータ型の変更の概略を示します。

表A-1 oraxmlパッケージとxmlパッケージでサポートされるデータ型

oraxmlでサポートされるデータ型 xmlでサポートされるデータ型
uword
xmlerr
xmlacctype
xmlurlacc
xmlattrnode
xmlattrnode
xmlcdatanode
xmlcdatanode
xmlcommentnode
xmlcommentnode
xmlctx
xmlctx
xmldocnode
xmldocnode
xmldomimp

廃止。xmlctxを使用。

xmldtdnode
xmldtdnode
xmlelemnode
xmlelemnode
xmlentnode
xmlentnode
xmlentrefnode
xmlentrefnode
xmlflags
ub4
xmlfragnode
xmlfragnode
xmlihdl
xmlurlhdl
xmlmemcb

個々の関数ポインタを使用

xmlnode
xmlnode
xmlnodes
xmlnodelist, xmlnamedmap
xmlnotenode
xmlnotenode
xmlntype
xmlnodetype
xmlpflags
ub4
xmlpinode
xmlpinode
xmlsaxcb
xmlsaxcb
xmlstream
xmlistream, xmliostream
xmltextnode
xmltextnode
xpctx
xpctx
xpexpr
xpexpr
xpnset

廃止。XmlXPathGetObjectNSetNum()XmlXPathGetObjectNSetNode()を使用。

xpnsetele

廃止。XmlXPathGetObjectNSetNum()XmlXPathGetObjectNSetNode()を使用。

xpobj
xpobj
xpobjtyp
xmlxslobjtype
xslctx
xslctx
xsloutputmethod
xmlxsloutputmethod

oraxmlパッケージとxmlパッケージのメソッドのマッピング

表A-2に新しいC APIにおけるメソッドの変更の概略を示します。

表A-2 oraxmlパッケージとxmlパッケージのメソッド

パッケージoraxmlのメソッド パッケージxmlのメソッド
appendChild()
XmlDomAppendChild()
appendData()
XmlDomAppendData()
cloneNode()
XmlDomCloneNode()
createAttribute()
XmlDomCreateAttr()
createAttributeNS()
XmlDomCreateAttrNS()
createCDATASection()
XmlDomCreateCDATA()
createComment()
XmlDomCreateComment()
createDocument()
XmlCreateDocument()
createDocumentFragment()
XmlDomCreateFragment()
createDocumentNS()
XmlCreateDocument()
createDocumentType()
XmlCreateDTD()
createElement()
XmlDomCreateElem()
createElementNS()
XmlDomCreateElemNS()
createEntityReference()
XmlDomCreateEntityRef()
createProcessingInstruction()
XmlDomCreatePI()
createTextNode()
XmlDomCreateText()
deleteData()
XmlDomDeleteData()
freeElements()
XmlDomFreeNodeList()
getAttribute()
XmlDomGetAttr()
getAttributeIndex()
XmlDomGetAttrs(), XmlDomGetNodeMapItem()
getAttributeNode()
XmlDomGetAttrNode()
getAttributes()
XmlDomGetAttrs()
getAttrLocal()
XmlDomGetAttrLocal(), XmlDomGetAttrLocalLen()
getAttrName()
XmlDomGetAttrName()
getAttrNamespace()
XmlDomGetAttrURI(), XmlDomGetAttrURILen()
getAttrPrefix()
XmlDomGetAttrPrefix()
getAttrQualifiedName()
XmlDomGetAttrName()
getAttrSpecified()
XmlDomGetAttrSpecified()
getAttrValue()
XmlDomGetAttrValue()
getCharData()
XmlDomGetCharData()
getChildNode()
XmlDomGetChildNode()
getChildNodes()
XmlDomGetChildNodes()
getContentModel()
XmlDomGetContentModel()
getDocType()
XmlDomGetDTD()
getDocTypeEntities()
XmlDomGetDTDEntities()
getDocTypeName()
XmlDomGetDTDName()
getDocTypeNotations()
XmlDomGetDTDNotations()
getDocument()

廃止。ドキュメントを取得するには、XmlLoadDomxxx()コールを使用

getDocumentElement()
XmlDomGetDoctElem()
getElementByID()
XmlDomGetElemByID()
getElementsByTagName()
XmlDomGetElemsByTag()
getElementsByTagNameNS()
XmlDomGetElemsByTag()
getEncoding()
XmlDomGetEncoding()
getEntityNotation()
XmlDomGetEntityNotation()
getEntityPubID()
XmlDomGetEntityPubID()
getEntitySysID()
XmlDomGetEntitySysID()
getFirstChild()
XmlDomGetFirstChild()
getImplementation()

廃止。DOMImplementationのかわりに xmlctx を使用

getLastChild()
XmlDomGetLastChild()
getNamedItem()
XmlDomGetNamedItem()
getNextSibling()
XmlDomGetNextSibling()
getNodeLocal()
XmlDomGetNodeLocal(), XmlDomGetNodeLocalLen()
getNodeMapLength()
XmlDomGetNodeMapLength()
getNodeName()
XmlDomGetNodeName(), XmlDomGetNodeNameLen()
getNodeNameSpace()
XmlDomGetNodeURI(), XmlDomGetNodeURILen()
getNodePrefix()
XmlDomGetNodePrefix()
getNodeQualifiedName()
XmlDomGetNodedName(), XmlDomGetNodedNameLen()
getNodeType()
XmlDomGetNodeType()
getNodeValue()
XmlDomGetNodeValue(), XmlDomGetNodeValueLen()
getNotationPubID()
XmlDomGetNotationPubID()
getNotationSysID()
XmlDomGetNotationSysID()
getOwnerDocument()
XmlDomGetOwnerDocument()
getParentNode()
XmlDomGetParentNode()
getPIData()
XmlDomGetPIData()
getPITarget()
XmlDomGetPITarget()
getPreviousSibling()
XmlDomGetPrevSibling()
getTagName()
XmlDomGetTagName()
hasAttributes()
XmlDomHasAttrs()
hasChildNodes()
XmlDomHasChildNodes()
hasFeature()
XmlHasFeature()
importNode()
XmlDomImportNode()
insertBefore()
XmlDomInsertBefore()
insertData()
XmlDomInsertData()
isSingleChar()
XmlIsSimple()
isStandalone()
XmlDomGetDecl()
isUnicode()
XmlDomIsUnicode()
nodeValid()
XmlDomValidate()
normalize()
XmlDomNormalize()
numAttributes()
XmlDomNumAttrs()
numChildNodes()
XmlDomNumChildNodes()
prefixToURI()
XmlDomPrefixToURI()
printBuffer()
XmlSaveDomBuffer()
printBufferEnc()
XmlSaveDomBuffer()
printCallback()
XmlSaveDomStream()
printCallbackEnc()
XmlSaveDomStream()
printSize()
XmlSaveDomSize()
printSizeEnc()
XmlSaveDomSize()
printStream()
XmlSaveDomStdio()
printStreamEnc()
XmlSaveDomStdio()
removeAttribute()
XmlDomRemoveAttr()
removeAttributeNode()
XmlDomRemoveAttrNode()
removeChild()
XmlDomRemoveChild()
removeNamedItem()
XmlDomRemoveNamedItem()
replaceChild()
XmlDomReplaceChild()
replaceData()
XmlDomReplaceData()
saveString2()
XmlDomSaveString2()
saveString()
XmlDomSaveString()
setAttribute()
XmlDomSetAttr()
setAttributeNode()
XmlDomSetAttrNode()
setAttrValue()
XmlDomSetAttrValue()
setCharData()
XmlDomSetCharData()
setNamedItem()
XmlDomSetNamedItem()
setNodeValue()
XmlDomSetNodeValue(), XmlDomSetNodeValueLen()
setPIData()
XmlDomSetPIData()
splitText()
XmlDomSplitText()
substringData()
XmlDomSubstringData()
xmlaccess()
XmlAccess()
xmlinit()
XmlCreate()
xmlinitenc()
XmlCreate()
xmlparse()
XmlLoadDomURI()
xmlparsebuf()
XmlLoadDomBuffer()
xmlparsedtd()

廃止。かわりに、XmlLoadXXX()コールでXML_LOAD_FLAG_DTD_ONLYフラグを使用

xmlparsefile()
XmlLoadDomFile()
xmlparsestream()
XmlLoadDomStream()
xmlterm()
XmlDestroy()
xpevalxpathexpr()
XmlXPathEval()
xpfreexpathctx()
XmlXPathDeleteCtx()
xpgetbooleanval()
XmlXPathGetObjectBoolean()
xpgetfirstnsetelem()
XmlXPathGetObjectNSetNum()
xpgetnextnsetelem()
XmlXPathGetObjectNSetNum()
xpgetnsetelemnode()
XmlXPathGetObjectNSetNum()
xpgetnsetval()
XmlXPathGetObjectNSetNum()
xpgetnumval()
XmlXPathGetObjectNumber()
xpgetrtfragval()
XmlXPathGetObjectFragment()
xpgetstrval()
XmlXPathGetObjectString()
xpgetxpobjtyp()
XmlXPathGetObjectType()
xpmakexpathctx()
XmlXPathCreateCtx()
xpparsexpathexpr()
XmlXPathParse()
xslgetbaseuri()
XmlXslGetBaseURI()
xslgetoutputdomctx()
XmlXslGetOutputDom()
xslgetoutputsax()

不要

xslgetoutputstream()

不要

xslgetresultdocfrag()
XmlXslGetOutputFragment()
xslgettextparam()
XmlXslGetTextParam()
xslgetxslctx()

不要

xslinit()
XmlXslCreateCtx()
xslprocess()
XmlXslProcess()
xslprocessex()
XmlXslProcess()
xslprocessxml()
XmlXslProcess()
xslprocessxmldocfrag()
XmlXslProcess()
xslresetallparams()
XmlXslResetAllParams()
xslsetoutputdomctx()
XmlXslSetOutputDom()
xslsetoutputencoding()
XmlXslSetOutputEncoding()
xslsetoutputmethod()
XmlXslSetOutputMethod()
xslsetoutputsax()
XmlXslSetOutputSax()
xslsetoutputsaxctx()
XmlXslSetOutputSax()
xslsetoutputstream()
XmlXslSetOutputStream()
xslsettextparam()
XmlXslSetTextParam()
xslterm()
XmlXslDeleteCtx()