感谢 Vadiraj
的帮助,我现在知道了如何在XML编辑器里打开非XML文件。有时候你拥有一个内容是XML但是却并非以“.xml”结尾的文件。如何让IDE把它看作一
个XML文件呢?接下来你可以看到一个后缀为“.test”的文件在XML编辑器里被打开。你知道它被打开是因为语法着色和缩进,以及XML文件特有的附
加菜单项:
1、使用文件类型向导,会创建一些不同的类。只需要修改名为 XxxDataObject 的类。
2、为模块依赖关系添加 XML Tools API。
3、在 DataObject 里,将继承的类由 MultiDataObject
改为 XMLDataObject。
4、在构造函数里补充验证 XML、确认 XML 和使用 XSLT 改变 XML 样式等附加功能所提供的 Cookies,像这样:
public TestDataObject(FileObject pf, TestDataLoader loader) throws DataObjectExistsException, IOException {
super(pf, loader);
CookieSet cookies = getCookieSet();
InputSource is = DataObjectAdapters.inputSource(this);
Source source = DataObjectAdapters.source(this);
cookies.add(new CheckXMLSupport(is));
cookies.add(new ValidateXMLSupport(is));
cookies.add(new TransformableSupport(source));
cookies.add((Node.Cookie) DataEditorSupport.create(this, getPrimaryEntry(), cookies));
}
5、确认导入合适的声明。
import java.io.IOException;
import javax.xml.transform.Source;
import org.netbeans.spi.xml.cookies.CheckXMLSupport;
import org.netbeans.spi.xml.cookies.DataObjectAdapters;
import org.netbeans.spi.xml.cookies.TransformableSupport;
import org.netbeans.spi.xml.cookies.ValidateXMLSupport;
import org.openide.filesystems.FileObject;
import org.openide.loaders.DataObjectExistsException;
import org.openide.loaders.XMLDataObject;
import org.openide.nodes.CookieSet;
import org.openide.nodes.Node;
import org.openide.text.DataEditorSupport;
import org.xml.sax.InputSource;
就这样,你已经完成。你的文件现在可以被看作是一个 XML 文件,就像其他所有的 XML 文件一样。
原文地址:http://blogs.sun.com/geertjan/entry/integrating_the_xml_edior_for