2010-11-30 12 views
0

XMLファイルは、要素を含むサーバーに格納されています。その中には、他のxmlファイルへの参照があります。 ITEM1とITEM2は、例えば、このようなものです別のXMLファイル内にリンクされているXMLファイルを読み込むことはできますか?

<xml> 
<item>value</item> 
<data>http://www.example.org/item1.xml</data> 
<data>http://www.example.org/item2.xml</data> 
</xml> 

:私はメインのXMLファイルを読むことができるようにしたい

<item> 
    <id>1</id> 
    <name>Item One</name> 
</item> 

(私にできることはもちろんある)、これはAsyncronousウェブで行われますXMLをダウンロードするように要求する - XMLファイル内で参照されるXMLファイルを同じ "要求"で読み上げるのではなくスピンアップすることができます。この場合、これらをダウンロードする別の2つのWebクライアント要求があります。これらの要求が完了するまで(XAMLのUIへのバインドなど)、このデータは利用できません。

この結果、メインのxmlファイルがダウンロードされて完了し、2つのxmlファイルが別々にダウンロードされます。 main xmlと "sub xml"ファイルを一度に読むことは可能ですか?

Silverlightのプラットフォームの制限であるAsync WebRequestのみを使用できます。サーバーストレージを保存するために多くのXMLファイルの間で分散され、提供される形式でデータを変更できません。メインおよびサブXMLファイルLINQ/XElement/Silverlightでサポートされている機能を使用して、1つのリクエストでダウンロードして解析することができます。これはサポートされないため、XPathを使用することはできません。

答えて

0

いいえ、サーバー側での取得がASP.NETや何か「アクティブ」によって行われている場合を除きます。別の言い方をすれば、HTTPを使って静的ファイルとしてXMLを取得している場合は、すでに知っていること以外は何も動作しません。つまり、受信時にXMLを解析し、さらに2つの要求を処理します。

ASP.NET対応サーバーからSilverlightアプリケーションを提供している場合、すべてのXMLファイルをフェッチし、それらをマージし、1つのXMLだけで応答する小さなaspx(さらに良いashx)を構築することができます。

+0

ソースファイルはこの形式でサードパーティによって提供されていますので、私はこれを行うことができますが、クライアントアプリケーションのみを持っています。合併はサーバー側でなければならないと思う - 私はこれが当てはまると思った。 – RoguePlanetoid

+0

はい、このクライアントサイドだけを行う方法はありません。好奇心の理由から、クライアントサイドだけを好む理由は何ですか? – rawpower

+0

ファイルもサードパーティ製でホストされており、この形式でSilverlightアプリで使用されることがあります。自分自身でサーバー上にデータを保持する機能はありません。 – RoguePlanetoid

0

あなたが正しく理解していれば、item.xmlと多くのsubitem.xmlファイルの間にrelationを設定します。 (右?)

次に、xmlファイルに接続するのではなく、リレーショナルデータベースを使用する必要があります。 大きなものにならない限り、すべてを1つのファイルにまとめてください。 他のすべてはあなたの時間の無駄です。 :)

+0

それまでは私の責任ではありましたが、データはこの形式です(フラットファイルXMLと他のXMLファイルへのリンクがあります)。データが保存されている形式を変更することはできないので、 – RoguePlanetoid

関連する問題