タグの省略について


例えば、SGML文書を作成する際に、終了タグを省略することがありますよね。それでも別段、支障はない。何故かというと、SGMLの場合、

  1. 先ず、SGML宣言で「タグの省略可能」と宣言する
    (大抵、宣言されてる。自分でSGML宣言作る場合も、まぁ、こうするでしょう。私は絶対、こう宣言する。)
  2. DTDで「終了タグは省略可能」と定義する
をしておけばいいんです。

で、XMLの場合はというと、これはご法度。理由は、現在のXML-PR(971208版)では、

element ::= 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