XML リーダーのクラス構造を作成するタスクを割り当てました。これまでのところ、単純な xml ファイルには 2 つの主要なクラスがあることがわかりました。要素と属性。組み込みの c# xml リーダーを使用して xml ファイルを読み取ることができます。しかし、私のコードは xml 要素、そこにある構造、および属性を識別できるはずです。私がプログラミングに慣れていないので、誰かが可能な理論や方法を説明できれば、それはありがたいです。
3 に答える
目的を果たすには、確立されたAPIを使用する必要があると思います。それとは別に、責任連鎖のデザインパターンを使用できると思います。
XML リーダーと XML ドキュメントには違いがあります。それらはさまざまなパターンをモデルにしています。
.NET のリーダーは、ストリームを読み取り、要素/属性または他のタイプのノードに遭遇したときに停止するように作られています。これは、高速にしたい場合や、メモリに保持したくない大きなストリームがある場合に実用的です。
XML ドキュメントはストリーム全体を読み取り、それを表すオブジェクト モデルをインスタンス化します。これは、構造を知る必要があり、メモリに収まる場合に実用的です。
リーダーを実装する場合は、ReadNext() などのメソッドを作成して、次のノードを読み取って返すことができます。手始めに、コメント、名前空間、その他のより難しいものではなく、xml 要素とその属性の解析に固執します。
これらは、OOP の方法で「XML リーダー」を設計する方法に関する 3 つの非常に良い例です。
これらは、XML ドキュメント、XML ドキュメントを構成するパーツ、および XML ドキュメントの構造を、対応するクラスの構造にマップし、XML ドキュメントを構築および分析する手段を導入します。
「ごまかし」をせずに (つまり、他の人がどのように行ったかを調べて) 独自のクラス構造を練習して構築したい場合は、XML 仕様を調べることから始めて、XML ドキュメントを構成できる要素/部分 (要素、属性、データ型) を特定することができます。など) これらの要素の多くは、対応するクラスを設計に含める必要があります。次に、XMLを使用して何ができるようにするかを考える必要があります。これはデザインにも影響します。
原則として、結果として得られる API は使いやすくなければならないことに常に留意する必要があります。対象となる「読者」はおそらく XML を知っている開発者であるため、クラスは XML について知っていることを反映する必要があります (名前は類似している必要があります)。