タグの省略について
例えば、SGML文書を作成する際に、終了タグを省略することがありますよね。それでも別段、支障はない。何故かというと、SGMLの場合、
- 先ず、SGML宣言で「タグの省略可能」と宣言する
(大抵、宣言されてる。自分でSGML宣言作る場合も、まぁ、こうするでしょう。私は絶対、こう宣言する。)
- DTDで「終了タグは省略可能」と定義する
をしておけばいいんです。
で、XMLの場合はというと、これはご法度。理由は、現在のXML-PR(971208版)では、
- element ::= EmptyElemTag | STag content ETag (以下略)
と定義されているから。つまり、
- 要素は空要素(EmptyElemTag)あるいは(|)、開始タグ(STag)・内容(content)・終了タグ(ETag)で構成される
- 要素が空要素でない場合、開始タグ〜終了タグは、それぞれ、その順番で文書に現われる
で、さらに、上記のETagの定義の直前に、
- The end of every element that begins with a start-tag must be marked by an end-tag containing a name that echoes the element's type as given in the start-tag:
と書いてあります。mustですから。
適当に省略してXML文書を作成して、SPのsgmlnorm(だったっけ?)か何かを使って、それを補えばいいかもしれませんが。
XML入門へ戻る
miuraj@isc.meiji.ac.jp