2011-02-04 17 views
1

の属性としてのxsi属性を、私は、このXMLファイルのすべての要素とその属性を取得しよう:のXerces SAXパーサーxmlxsを無視:XercesのSAXパーサーを使用して要素

---------- ----> ----------------

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

--------------終了を解析するXMLファイルを開始しますリスト内の属性:要素の属性「請求書」を取得するとき

、Xercesの++は「XSIのxmlns」を挿入しません---------------->解析するXMLファイル要素 '請求書'の '属性'の はしかし、属性「XSI:のnoNamespaceSchemaLocationは」リストに挿入されています。

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

ありがとうございました。

答えて

2

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

+0

これは私の質問に答え、ありがとうございました。 – cazdevel

関連する問題