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