1

このXML構文チュートリアルを読んでいたところ、 「ProcessingDirectives」<? ... ?>)と「DeclarativeStatements 」 ( )の定義が<! ... >少し曖昧であることがわかりました。そのページを読んで得た要点は、どちらもドキュメントプロセッサにその方法を指示するドキュメントの方法であるということです。

たとえば、多くの人が精通していると思う一般的なコードを次に示します。

<?xml version="1.0"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

私が見る限り、これらは両方ともドキュメントを処理する方法についての指示です。では、違いは何ですか?

4

2 に答える 2

3

チュートリアルを作成するときに、仕様自体の言語よりも理解しやすいことを期待して、役立つ用語を考案しようとする人もいます。この特定のチュートリアルの作者は、この点でやり過ぎたようです。これらの用語はどちらも公式のXML用語ではありません。

あなたの例の最初のものはXML宣言です。使用しているXMLのバージョンと、ドキュメントの文字エンコードをXMLパーサーに通知します。

あなたの例の2番目のものはDOCTYPE宣言です。使用しているXMLボキャブラリ(この場合はXHTMLボキャブラリ)をXMLパーサーに通知し、ボキャブラリを正しく使用していること(つまり、ドキュメントが参照されているDTDに対して有効であること)を確認する機会をパーサーに提供します。

于 2012-04-12T08:43:50.107 に答える
0

XMLはSGMLの子孫です。SGMLでは、処理命令は<? ?>マークアップで囲まれています。宣言はで囲まれてい<! !>ます。XMLドキュメントでは、最初のSGML処理命令は<?xml ... ?>、XMLのバージョンとテキストエンコーディングを示すことです。その後<!DOCTYPE ...!>、XMLパーサーにドキュメントの検証方法を通知する宣言があります。宣言がない場合、XMLパーサーは、ドキュメントが整形式であるかどうかのみを判断できますが、ドキュメントが有効かどうかは判断できません。DOCTYPEや埋め込みDTDなどの宣言がある場合、パーサーはドキュメントが有効かどうかを判断することもできます。

于 2019-02-18T23:48:59.853 に答える