【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(十)

WTP TLD内容模型介绍

前面的系列文章中,我们已经分析了WTP的语法Document(IStructuredDocument)和语义Documnt (ICSSDocument或者IDOMDocument)以及和二者密切相关的IStructuredModel,并在这基础之上对WTP默 认提供的StructuredTextEditor进行了部分功能定制。

开发】基于WTP开发自定义的JSP编辑器(十)-eclipse jsp编辑器">

问题出现了,我们想要的信息全部包含在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>

时间: 2024-12-24 20:39:47

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(十)的相关文章

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(八)

定制StructuredTextEditor自动提示 前面介绍的内容集中在两点:StructuredTextEditor框架和WTP数据模型,在本节中就可以定制一个我 们最常用的WTP StructuredTextEditor的功能,那就是自动提示. [WTP StructuredTextEditor提示功能实现分析] 有关Eclipse文本编辑器框架.JFace Text Framework和WTP StructuredTextEditor的简要知识,参见: [Eclipse插件开发]基于WT

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(九)

定制StructuredTextEditor源码即时校验 上一节我们定制了WTP StructuredTextEditor的自动提示功能特征,本节将定制另外一个功能特征即 时源码校验.所谓源码即时校验,就是在用户编辑过程中(并未保存),针对用户编辑的内容改变做即时 校验,并给用户即时反馈相关的错误或者其他类型的提示信息.在本节中,我们将以标签的即时校验为例 ,演示如何定制WTP StructuredTextEditor的源码即时校验. 在定制之前,我们先来看一下WTP StructuredTex

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(七)

WTP数据模型总结和模型管理 前面已经详细介绍过WTP语法Document(IStructuredDocument).WTP语义Document(IDOMDocument 或ICSSDocument)和WTP Model(IStructuredModel),在本节中将从总体上再看一下对我们后续基于 WTP进行代码定制很重要的点,同时将补充最核心的一个点:WTP中的模型管理机制. PS:如果前面的几节是探微的过程,那边本节将完成知著的过程,"探微知著"^_^ [语法Document.语义

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(六)

IStructuredModel(DOM Document)分析视图 前面的几节中,我们都已经完整的介绍过了WTP最核心的几个数据模型:语法Document (IStructuredDocument).语义Document(IDOMDocument.ICSSDocument)和WTP模型 (IStructuredModel).IStructuredModel在某种程度上可以看作是语义Document和语法Document的门 面,三者关系再罗唆一下: 开发]基于WTP开发自定义的JSP编辑器(六

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(五)

WTP Structured Model 有关另外一个WTP重要的数据模型IStructuredDocument已经在前面介绍过了,今天我们看一下另外一 个核心的数据模型IStructuredModel.在继续下面的内容之前,请确保当前工作区中已经导入(无论是 源码方式导入还是二进制方式导入)了如下工程: org.eclipse.jst.jsp.core org.eclipse.jst.jsp.ui org.eclipse.wst.css.core org.eclipse.wst.css.ui

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(三)

WTP Structured Document 上一篇中我们已经基于WTP的StructuredTextEditor建立了自己的JSPEditor,这篇将介绍对于我们 Editor最重要的数据模型之一:IStructuredDocument (org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument),下一篇将介绍另 外一个IStructuredModel.看一下IStructuredDocument的类型体系如

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(一)

基于Eclipse的J2EE开发者,很多人都需要和wtp打交道.本系列文章中将从Eclipse插件开发者视角来 看WTP,以开发一个自定义的JSP编辑器为示例来阐述一下基于wtp进行二次定制开发(称之为基于WTP的插 件开发)的过程中需要关键知识.其实,现在我们所看到的一些开发工具底层很多都是基于WTP开发的, 只是他可能给包装了一下wtp的默认的编辑器,提供了一些额外的功能. 大致的计划如下: 1.整体介绍wtp(wst + jst) (以插件开发角度) 2.介绍wtp的structured

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(二)

基于WTP StructuredTextEditor创建自己的JSPEditor 在本小节中,无论如何先把自己的编辑器给搞出来,为我们后面对wtp提供的JSP编辑器进行定制. [开发环境准备] 1.Eclipse 3.2 + WTP 1.5 2.对应的GEF(3.2.1).EMF(2.2.1)系列插件 3.将必要插件导入到工作区,导入插件列表如下: 因为我们暂时只是阅读并不打算修改wtp源码,所以就先以二进制方式导入,以上导入的6个插件以后 要和我们常打交道-_-. 说明: Eclipse 3.

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(四)

Strucutured Document分析视图 在上一篇中,我们详细阐述了WTP中最重要的数据模型之一IStructuredDocument(我们就称之为WTP Document吧,和另外一个核心数据模型WTP Model----IStructuredModel对应),本节中我们将自己开发 一个工具来分析IStrucutredDocument. PS:千万别着急,后面的文章会对WTP StructuredTextEditor进行功能特征定制的,在真正定制之前 一定要搞清楚WTP Documen