XMLの終了タグに名前が必要なのはなぜ？


XMLは、

[code]

    <タグ>
    </タグ>
    
[/code]

ですが、単に

[code]

    <タグ>
    </>
    
[/code]

でもよさそうなのですが  
**質問１．** なぜ終了タグに名前が必要なのでしょうか？  
規格がそうなっている言われたらそれまでですが

思うに、名前が必要な理由として

[code]

    <タグ1>
        <タグ2>
    </タグ1>
        </タグ2>
    
[/code]

ということができるため？くらいしか思いつきません。  
**質問2．** 実際にこのようなことができるのでしょうか？




XMLはもともとSGMLという別の言語の仕様を単純にしたサブセットとして設計されていました。そしてSGMLでは
**直前に開かれたタグを閉じる場合に限り**`</>`と終了タグを省略することができます。

質問1のような記述は許されていないため機能上は終了タグの名前を明記する必要性は無いのですが、もしすべての終了タグの省略を許す構文を採用するとSGML仕様に反してしまうので、省略を許さないように統一したのではないでしょうか。




XMLはもともとSGMLという別の言語の仕様を単純にしたサブセットとして設計されていました。そしてSGMLでは
**直前に開かれたタグを閉じる場合に限り**`</>`と終了タグを省略することができます。

質問1のような記述は許されていないため機能上は終了タグの名前を明記する必要性は無いのですが、もしすべての終了タグの省略を許す構文を採用するとSGML仕様に反してしまうので、省略を許さないように統一したのではないでしょうか。

