2016-03-25 10 views
2

w3schools.comには、advantages/strengths listed about XML Schemasがあります。XMLパーサーの定義の理解

次の点が意味するもの:

あなたのスキーマファイルを解析するために、あなたのXMLパーサーを使用することができます

+3

著者は、スキーマファイルが基本的にxmlなので、スキーマファイルを解析するために特別なことは必要ないので、実際に指摘しようとしています。あなたは毎日サクソンのようなXMLパーザーです。 –

+0

"XMLパーサ"が何であるか質問するので、もう少し正確にする必要があります。 SaxonはXMLパーサーではありません。 –

答えて

2

総称的には、コンピュータサイエンスでは、パーサはかかるソフトウェアの一部であります文字列を入力とし、その構造を文法を参照して決定する。 XMLパーサーの場合、その文法は開始タグ、終了タグ、属性などに関するルールのセットです。したがって、XMLパーサーの仕事は、生のXML文書を入力として受け取り、属性が識別されました。

残念ながら、それを正しく使用しているという意味で、多くの人が誤用しています。 StackOverflowについては、実際にXMLパーザの出力を処理するXMLアプリケーションを記述しているときに、「XMLパーサーの作成」について人々が話しているStackOverflowに関する多くの質問があります。

W3C XML仕様では、実際には「XMLパーサー」という用語は使用されません。それは "XMLプロセッサ"について語っています。私はその理由は、XMLプロセッサが単なる構文解析以上のことをしているということだと思います。また、純粋なコンピュータサイエンスの意味でパーサーの仕事ではない、一貫性チェック(開始タグと終了タグが一致しているかどうかをチェックする)と検証を行うこともできます(パーサによって識別された要素がいくつかのDTDまたはスキーマ)。

XMLを使用してあらゆる種類のデータを表す利点の1つは、独自のパーサを記述する必要がないことです。あなたが仕事に使うことができるたくさんのXMLパーサーがあります。あなたが引用するW3Schoolsサイトは、これが他の種類の構造化データほどスキーマにも当てはまることを指摘しています。

@Zafarによるコメントに応答して、SaxonはXMLパーサーではありません(ただし、それを呼び出す人は珍しくありません)。 Saxonには、XPath、XSLT、XQueryなどの言語を使用してXMLを処理するためのツールが多数含まれていますが、SaxonはXML自体を解析しません。それを行うために外部のXMLパーサのサービスを呼び出します。しかし、Saxonのような一般的なXMLツールを使用する能力は、XMLでデータを表現するもう一つの利点であり、おそらくXMLパーサ自体を再利用する能力よりも価値があります。

+0

"スキーマに適用"とはxsdを意味しますか? 「他の種類の構造化データ」が意味するもの – ilm

1

XMLスキーマはXML構文を使用するため、標準XMLパーサーを使用して解析できます。これは、XMLとして解析することはできません例えばDTDよりも優れた利点、であり、いくつかの非常に実用的な利点が生まれます。

  • XSLTはドキュメントを生成したり、 別の関連XMLに1つのXMLスキーマを変換するためにXMLスキーマを解析することができますスキーマ。
  • Schematronは、 セクタまたは他の組織のガイドライン/ポリシーへの適合をチェックするためにXMLスキーマを解析できます。
  • JAXBおよびxsd.exeは、 をマーシャリングをサポートするJavaまたは.NETでクラスを生成し、 を自動的にアンマーシャリングするXMLスキーマを解析できます。

XMLスキーマはXML構文を使用して制約を表現するため、これらの利点はより簡単に実現できました。