1

Xerces SAXパーサーを使用して、このXMLファイルのすべての要素とその属性を取得しようとしています。

--------------解析するXMLファイルを開始します---------------->

<?xml version="1.0" encoding="UTF-8"?> <invoice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="my.xsd"> <parties> (...)

--------------解析するXMLファイルを終了します---------------->

要素'invoice'の属性を取得するとき、Xerces++は要素'invoice'の'属性'のリストに'xmlns:xsi'属性を挿入しません。ただし、属性'xsi:noNamespaceSchemaLocation'がリストに挿入されます。

なんで?XML標準の観点から特定の理由はありますか?この属性も挿入するようにXerces++SAXパーサーを構成する方法はありますか?(パーサープロパティの設定に関するドキュメントには、その方法が記載されていません)。

ご協力いただきありがとうございます。

4

1 に答える 1

2

SAX は、名前空間の宣言を属性とは異なる方法で扱います。属性は startElement() イベントで通知され、名前空間は (要求された場合) startPrefixMapping() イベントで通知されます。

于 2011-02-04T15:25:15.887 に答える