3

xercesc で XercesDOMParser を使用してクライアントからの着信 xml を解析する既存のシステムで xincludes を動作させようとしています。私は Apache Xercesc v3.0.1 を使用しています。入力ストリームから読み取られた着信 XML は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<VisionServer xmlns:xi="http://www.w3.org/2001/XInclude">
    <CompositeObject>
 <xi:include href="testguioutput.xml" />

testguioutput.xmlが含まれている間

<?xml version="1.0" encoding="UTF-8"?>
<GUIOutput>
    <Input>Input</Input>
    <Title>IDC2_1</Title>
</GUIOutput>

既存のコードは、XercesDOMParser のラッパーを使用して XML が入ってくると解析し、setDoNamespaces と setDoXInclude を true に使用した後、XInclude を解析しようとしていますが、永続的な "Fatal: include failed and no fallback element found.ディレクトリ構造のどこに testguioutput.xml を配置しても、ドキュメント '{0}' で" エラーが発生しました。

VisualStudio 2008 で作業しています。私の作業ディレクトリはデフォルトで、/project/debug が不足していますが、ターゲット ファイルが /project/ または /project/debug/ にあるかどうかにかかわらず、インクルードは失敗します。

4

1 に答える 1

0

Xercesアプリケーションに含まれているXInclude.exeサンプルアプリケーションを使用して、xincludeタグを拡張することができました。これを行うために、上記のファイルを使用して2つのファイルを作成しました。

test1.xml:

<?xml version="1.0" encoding="UTF-8"?>
<VisionServer xmlns:xi="http://www.w3.org/2001/XInclude">
  <CompositeObject>
    <xi:include href="test2.xml"/>
  </CompositeObject>
</VisionServer>

test2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<GUIOutput>
  <Input>Input</Input>
  <Title>IDC2_1</Title>
</GUIOutput>

私が実行したコマンドラインで:

引用符なしの「XInclude.exetest1.xmltest1_expanded.xml」。

結果のtest1_expanded.xmlファイル:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<VisionServer xmlns="" xmlns:xi="http://www.w3.org/2001/XInclude">
  <CompositeObject>
    <GUIOutput xml:base="test2.xml">
      <Input>Input</Input>
      <Title>IDC2_1</Title>
    </GUIOutput>
  </CompositeObject>
</VisionServer>
于 2010-02-01T18:46:50.590 に答える