2

我正在问一个后续问题,以帮助 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 的其他部分,那很好,只要它不要求启动富客户端平台和 GUI。我正在寻找无头解决方案。

在 Eclipse 堆栈的哪一层,我可以访问此接口,以便设计一个命令行程序,该程序本质上接受 XML 文件和类似于 Eclipse 首选项窗格中的格式首选项列表(但指定作为命令行参数)并生成格式化的 XML 作为输出?

网上看了一些,觉得Eclipse Juno中的XML源代码编辑器是用WST实现的,但是不知道怎么分离出WST中与本项目无关或者有GUI功能的部分,所以只能调用实际执行 XML 解析和修改的无头“引擎”类。

这个问题不是关于如何使用有问题的接口。只是 Eclipse 平台太大了,仅仅发现我需要的库接口的存在本身就是一个挑战,因此这个问题。一旦我找到了一个位于该任务的正确抽象级别的 API,我将能够从文档中了解 API 并编写程序而无需更多帮助。

4

1 回答 1

2

XML 格式化程序位于“org.eclipse.wst.xml.core”插件中。

org.eclipse.wst.xml.core.internal.formatter.XMLFormatterFormatProcessor

该插件使用扩展点“org.eclipse.wst.sse.core.formatProcessors”使其可用。

于 2012-09-26T15:44:30.457 回答