我正在问一个后续问题,以帮助SuperUser question发展成为编程问题的OP。
正如您在回答SU问题时从Eclipse的屏幕截图中看到的那样,Eclipse有一个强大且可配置的格式化XML的引擎(顺便说一句,我正在使用Eclipse Juno版本)。
SU问题的OP选择Eclipse的XML引擎作为整理XML的首选方法。不幸的是,OP更喜欢在命令行上工作,并希望从Eclipse的XML格式化引擎中捕获相同的功能,并使其作为一个简单的无头程序运行,例如可以从中调用。 bash
。
我知道Eclipse是非常模块化和可扩展的,所以我的直觉告诉我Eclipse不会将XML引擎背后的功能与UI紧密结合。所以,我认为Eclipse中有一些OSGi模块只将XML处理例程实现为无头I / O接口,而不是耦合到Eclipse运行时。如果这个接口依赖于Eclipse的其他部分,那就完全没问题,只要它不要求启动Rich Client Platform和GUI。我正在寻找无头解决方案。
我可以在Eclipse堆栈的哪一层访问此接口,以便设计一个命令行程序,实际上,它接受一个XML文件和一个类似于Eclipse Preferences窗格中的格式化首选项列表(但指定为命令行参数)并生成格式化的XML作为输出?
在线阅读之后,我认为Eclipse Juno中的XML源代码编辑器是在WST中实现的,但我不知道如何分离与该项目无关或具有GUI功能的WST部分,以便我只能调用实际进行XML解析和修改的无头“引擎”类。
这个问题不是关于 如何使用相关接口。只是Eclipse平台如此庞大,以至于发现我需要的库接口的存在本身就是一个挑战,因此这个问题。一旦我找到一个位于适合此任务的抽象级别的API,我将能够从文档中了解API并编写程序而无需进一步的帮助。
答案 0 :(得分:2)
XML格式化程序位于“org.eclipse.wst.xml.core”插件中。
org.eclipse.wst.xml.core.internal.formatter.XMLFormatterFormatProcessor
该插件使用扩展点“org.eclipse.wst.sse.core.formatProcessors”使其可用。