フィードとストレージの制限に基づいて一連の決定を行います。例えば:
Web サイトに接続し、フィードの XML ソースをダウンロードします。フィード ダウンロード エンジンは、HTTP または Secure Hypertext Transfer Protocol (HTTPS) プロトコルのみを介してフィードとエンクロージャをダウンロードします。
フィード ソースを Windows RSS プラットフォームのネイティブ形式に変換します。これは、追加の名前空間拡張機能を備えた RSS 2.0 に基づいています。(ネイティブ形式は基本的に、サポートされているすべての形式のスーパーセットです。) これを行うには、Windows RSS プラットフォームに Microsoft XML (MSXML) 3.0 SP5 以降が必要です。
新しいフィード アイテムをフィード ストア内の既存のフィード アイテムとマージします。
所定の最大数のアイテムが受信されたときに、古いアイテムをフィード ストアからパージします。
必要に応じて、バックグラウンド インテリジェント転送サービス (BITS) を使用してエンクロージャのダウンロードをスケジュールします。
無駄な帯域幅を最小限に抑えるために、HTTP を最大限に使用します。
サーバーへの影響を制限するために、フィード ダウンロード エンジンは、HTTP (RFC3229) World Wide Web リンクでデルタ エンコーディングと組み合わせた HTTP 条件付き GET を実装します。この実装により、サーバーは、クライアントにキャッシュされたリソースのまったく新しいインスタンスを転送する代わりに、変更の最小限の説明を転送できます。このエンジンは、Microsoft Win32 Internet (WinInet) の HTTP gzip サポートを使用した圧縮もサポートしています。
同期が成功したということは、フィードが正常にダウンロードされ、検証され、ネイティブ形式に変換され、ストアにマージされたことを意味します。HTTP 条件付き GET (If-Modified-Since、If-None-Match、ETag など) に対する HTTP 304 Not Modified のサーバー応答も成功と見なされます。
削除の基準を定義します。
次のプロパティは、同期操作後に残るアイテムの数に直接影響します。
PubDate - アイテムの「年齢」を決定するために使用されます。PubDate が設定されていない場合は、LastDownloadTime が使用されます。フィードがリストの場合、項目の順序は事前に決定され、PubDate (存在する場合) は無視されます。
MaxItemCount — アーカイブされるアイテムの数を制限するフィードごとの設定。フィードからダウンロードできるアイテムが他にもある場合でも、フィードの ItemCount が最大値を超えることはありません。
ItemCountLimit - 任意の 1 つのフィードのアイテムの上限で、通常は 2500 として定義されます。MaxItemCount の値は、この制限を超えることはできません。MaxItemCount を ItemCountLimit に設定して、可能な限り多くのアイテムを保持します。
参考文献