(原)用nXML-mode编辑xml

阅读更多
最近想用emacs打造一个小型的Java开发环境,Java开发的mode肯定是选jde了,在IBM的网站上有一篇文章介绍了jde的使用文章 《使用emacs-jde进行Java开发》需要注意的是ede、eieio、semantic、speedbar都在cedet这个包中,elib还需要单独下载,这里就不再缀述。
做为Java开发环境,一个称手的xml编辑器少不了。网上很多介绍使用psgml-mode来编辑xml的,但我发现psgml的使用比较麻烦,似乎还不支持xsd校验,只支持dtd校验。于是找到了nXML-mode,经过测试,nXML-mode再配合RNC schema可以实现对xml文件格式的校验和代码自动完成。
nXML-mode安装配置过程如下:
  1. 下载nXML-mode及相关的工具软件
    • nXML-mode
    • 自动生成RNC schema的工具Trang
      nXML使用RNC schema来实现对xml的校验,而不是直接使用dtd或xsd,在nXML-mode的包中带了一些常用格式的RNC文件,如DocBook、XHTML、XSLT、DTD等。
      Trang这个工具可以根据DTD生成对应的RNC文件。
    • 将 W3C XML Schema 转换为 RELAX NG格式的工具rngconv
      这个工具能是将xsd转换成RNG格式,然后可以用Trang将RNG转换为RNC。
  2. 修改.emacs,以加载nXML-mode
    配置无法贴出,贴出后出现排版错误,可以参见nXML-mode的README
  3.  添加对Hibernate hbm文件的支持
    根据Hibernate 3 的DTD生成RNC文件
    命令
    1. java -jar trang.jar http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd hibernate-mapping-3.0.rnc 
    将生成的hibernate-mapping-3.0.rnc复制到emacs的nXML-mode安装目录。
    修改nXML-mode安装目录下的schema/schema.xml。在文件中增加一种新的文件类型对质,在文件中加入:
    xml 代码
    1. <typeId id="Hibernate HBM" uri="hibernate-mapping-3.0.rnc"/>  
    在schema.xml文件中加入hbm的一种识别方式,这里将根据文件名以hbm.xml结尾,来识别这是一个Hibernate HBM类型的文件:
    xml 代码
     
    1. <uri pattern="*.hbm.xml" typeId="Hibernate HBM"/>  
    这样在打开hbm.xml结尾的文件时,将自动加载前面生成的rnc文件。
  4. 添加对Maven2 pom文件的支持
    根据Maven2的xsd生成rng文件
    命令
    1. java -jar rngconv.jar http://maven.apache.org/maven-v4_0_0.xsd >> maven2.rng  
    根据rng生成rnc
    命令
    1. java -jar trang.jar maven2.rng maven2.rnc  
    将maven2.rnc复制到nXML-mode安装目录中。修改schema.xml增加一种新的类型

    xml 代码
    1. <typeId id="Maven2" uri="maven2.rnc"/>  
    修改schema.xml,加入自动识别pom文件的功能,这里不通过文件名来识别,而是使用namespace来识别
    xml 代码
    1. <namespace ns="http://maven.apache.org/POM/4.0.0" typeId="Maven2" />  
    这样在打开pom时,将自动加载maven2.rnc文件。
  5. 现在可以编辑hbm或者pom文件进行测试。nXML-mode是即时进行校验的,按Ctrl+return可以自动完成标签或属性。

你可能感兴趣的:(XML,Hibernate,Emacs,maven,Apache)