WTP TLD內容模型介紹
前面的系列文章中,我們已經分析了WTP的語法Document(IStructuredDocument)和語義Documnt (ICSSDocument或者IDOMDocument)以及和二者密切相關的IStructuredModel,並在這基礎之上對WTP默 認提供的StructuredTextEditor進行了部分功能定制。
問題出現了,我們想要的信息全部包含在IStructuredDocument、IDOMDocument(ICSSDocument)或 IStructuredModel中嗎? 沒有。例如,如果我們需要訪問上圖JSP文檔TLD相關信息(例如:判斷當前JSP 文檔中使用的特定標簽在TLD中是如何聲明的、和當前JSP文檔想關聯的TLD是怎樣定義的、、、),這些 信息並不是直接放置於語法Document(IStructuredDocument)或者語義Document(IDOMDocument或者 ICSSDocument)中的。除了TLD相關的信息外,我們需要的還有其他的描述信息,所有這些信息可以看做 元數據信息,WTP將其稱為content model(直譯為內容模型吧^_^)。在本節中我們就先介紹一種內容模 型:TLD內容模型(TLD Content Model),在後面緊接下來的章節中,我們會基於本節介紹的TLD內容模 型開發一個自動編輯策略(auto edit strategy)。
【TLD Content Document】
所謂的TLD Content Document,從字面上就可以猜測出來是對某一TLD的描述文檔。那我們就先看一個 TLD定義文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web- jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.0</jspversion>
<shortname>test1</shortname>
<uri>http://www.blogjava.net/zhuxing/tags/test1</uri>
<tag>
<name>test</name>
<tagclass>any</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>scope</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>