-パース時の名前空間の取り扱い仕様の変更

いくつかの実装上の可能性実現のため、パース時の名前空間の取り扱いの仕様に変更を行います。骨子は以下のとおりです。

テンプレートは以下のような感じ。

<html xmlns:m="{MAYA_URI}" xmlns:c="{CORE_URI}">
  <!-- .mayaを参照する例 -->
  <span id="message">
    body text
  </span>

  <!-- 設定を埋めこむパターン例 -->
  <span m:inject="c:out" c:value="${ greeting }" m:rendered="true">
    body text
  </span>

  <!-- 直に書いちゃう例 -->
  <c:out m:id="message" value="${ greeting }" m:rendered="true">
    body text
  </c:out>
</html>

.mayaをidで引く場合はまったく変りません。このidは、{HTML_URI}idと解釈されるとおりです。これと、.maya中の{MAYA_URI}id属性で同じ値を持つものを探します。m:injectを使う場合は、c:outタグの属性は、c:valueのように同じプレフィックスを用いる点に違いがあります。テンプレートには直にかける機能もすでにあって、その際はノードがc:プレフィックスなのでvalue属性はプレフィックスを省いてもOKとします。
.mayaは以下のような感じ。

<m:maya xmlns:m="{MAYA_URI}" xmlns:c="{CORE_URI}">
  <!-- カスタムタグインジェクト -->
  <c:out m:id="message" c:value="${ greeting }" m:rendered="true"/>
  <!-- 上記を、valueのプレフィックス省略 -->
  <c:out m:id="message" value="${ greeting }" m:rendered="true"/>

  <!-- 基本形 -->
  <m:ignore m:id="idForDHTML"/>
  <!-- ノードのプレフィックスを省略-->
  <ignore m:id="idForDHTML"/>
  <!-- idのプレフィックスを省略-->
  <m:ignore id="idForDHTML"/>
  <!-- ノード・idのプレフィックスをともに省略-->
  <ignore id="idForDHTML"/>
</m:maya>

c:outのほうは、CORE_URI名前空間なので、idやrenderedはプレフィックスを省略できません。省略すると、それぞれ、c:idやc:renderedとなります。もしタグにidやrenderedがあったら?という問題はこれで解決できます。ignoreノードのほうは、MAYA_URIなのでノードのプレフィックスも省略できますし、属性もプレフィックスを省略するとノードのプレフィックスというルールから、idもm:idと評価されます。
このルールから仕様錯誤によるプレフィックスの打ち間違い、もしくはプレフィックスの省略は出来るだけ検出し、例外とします。たとえば、非MAYA_URI名前空間のタグにおいて、idやrenderedといったMAYA_URI名前空間の属性のプレフィックスが省略されているとき、MAYA_URI名前空間にて定義されていないものにMAYA_URIを貼ったり、プレフィックスを省略したときなどです。