感謝 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