17

http://www.w3.org/TR/xml-infoset/ウィキペディアのエントリを読んでみました。しかし、率直に言って、私はまだ違いが何であるかわかりません。

引用:

XML ドキュメントが整形式であり、名前空間の制約を満たしている場合、XML ドキュメントには情報セットがあります。情報を設定するために、XML ドキュメントが有効である必要はありません。

ウィキペディアのエントリから、意味がないようです。有効でないドキュメントがどのようにセマンティクスを持つことができるのでしょうか。

この「情報セット」とは何ですか

整形式で、制約された名前空間を満たします

XMLは?そして、それ自体がどのように役立つか。言い換えれば、意味的に言えば、なぜXML情報セットを定義する必要があるのでしょうか? XMLで表現できない情報はありますか? もしそうなら、XML Infoset の制限セットを見ることができますが、XML Infoset は「情報」という用語と同じくらい無意味ではないでしょうか?

興味深い回答をありがとう: Xml infoset が infoset という用語とは対照的に何らかの目的を持っている理由をまだ理解できません。しかし、皆さんは質問に対する直接的な答えを私に与えてくれました

4

9 に答える 9

20

XML はテキストではありません。XML は XML 情報セットです。これは XML ドキュメント内のテキストにシリアライズされる可能性がありますが、実際は XML 情報セットです。

たとえば、infoset は DOM ツリーとしてメモリ内に存在する場合があります。抽象オブジェクト モデルの実装としてメモリ内に存在します。

UTF-8 としてシリアル化し、次に UTF-16 としてシリアル化するとどうなりますか。結果は 2 つの異なるビット セットになる可能性がありますが、情報セットは同じです。

また、テキストでは、文字列の連結などを行うのが理にかなっていることも考慮してください。XML 要素の途中で「<」を連結したくありません。最初にエンコードする必要があります。それが単なるテキストである場合、なぜこれを行う必要があるのでしょうか? たとえば、DOM を使用した場合は、単に element.InnerText = "<"; と言うだけです。シリアル化すると、「<」は「<」にエンコードされます。しかし、それは同じ情報セットです。

于 2009-05-08T10:43:15.547 に答える
9

XML テキストと XML infoset の違いを考えるのに役立つ方法は、Fast Infosetを検討することです。これは、XML 情報セットのバイナリ表現です。

したがって、XML データ (ノード、要素、属性など) を表す概念モデルである抽象的な「infoset」があります。これは、テキスト XML ドキュメントまたは Fast Infoset ストリームとして物理的に表すことができます。どちらも同じデータを表しますが、根本的に異なる方法で表されます。

于 2009-10-01T11:55:53.547 に答える
2

XML 情報セットは、有効な XML ドキュメントを記述するために使用できる属性やエンティティなどの概念の抽象的なセットです。仕様によると、「XML ドキュメントの情報セットは、いくつかの情報項目で構成されています。整形式の XML ドキュメントの情報セットには、少なくとも 1 つのドキュメント情報項目とその他のいくつかの情報項目が含まれます。」

XML ドキュメントが情報セットであるからといって、それが XSD に準拠し、有効な XML ドキュメントであるとは限りません。

于 2009-05-08T21:52:05.867 に答える
2

有効な XML ドキュメントは、DTD または XSD (またはその他の標準) の要件を満たしています。整形式であっても、指定された DTD または XSD の規則に違反していれば、「無効」である可能性があります。

編集:私は XML のこの領域に不慣れですが、infoset は XML ドキュメントの一部の「抽象レベル」の記述であり、実際の技術的な実装とは無関係のようです。たとえば、ドキュメント オブジェクト モデルなどです。実装。

于 2009-05-08T10:37:50.177 に答える
2

MSDN のこのリンクを参照してください。 http://msdn.microsoft.com/en-us/library/aa468561.aspx

これは概念の非常に優れた説明であり、うまくいけばそれが明確になるでしょう。

于 2010-12-12T10:44:25.073 に答える
0

私が見つけた良い例は、David Chappell の WCF PDFです。これは、たとえば TCP を使用する場合の動作です。

通信の両当事者が WCF で構築されている場合に最適なパフォーマンスを実現するために、この場合に使用されるワイヤ エンコーディングは、SOAP の最適化されたバイナリ バージョンです。メッセージは、Infoset と呼ばれる SOAP メッセージのデータ構造に引き続き準拠しますが、そのエンコーディングでは、XML の標準的な角かっことテキスト形式ではなく、その Infoset のバイナリ表現が使用されます。このオプションの使用は、コール センター クライアント アプリケーションとの通信に適しています。これも WCF 上に構築されており、パフォーマンスが最優先事項であるためです。

于 2009-10-01T11:50:35.103 に答える
0

XML Infoset は、シリアル化された XML ドキュメントをどのように構造化するかに関する要件です。

シリアライズされた XML には、バイナリ形式 ( Fast Infoset ) やテキスト (最も一般的な形式) など、さまざまな形式があります。

基本的に XML ドキュメント形式 (テキスト) の場合、各要素と属性は対応する名前空間を介して XSD で定義する必要があります。

ここに例があります。

于 2017-09-04T13:26:46.537 に答える