【发布时间】:2010-06-02 14:00:32
【问题描述】:
我有 XSD 文件(例如)http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd,我想用它在我的 xml 编辑器中添加代码自动完成功能(我更喜欢 Eclipse,但任何其他免费编辑器都可以)。
有可能吗?如果是,我该怎么做?
【问题讨论】:
我有 XSD 文件(例如)http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd,我想用它在我的 xml 编辑器中添加代码自动完成功能(我更喜欢 Eclipse,但任何其他免费编辑器都可以)。
有可能吗?如果是,我该怎么做?
【问题讨论】:
我遇到了类似的问题,但在这里没有找到解决方案,所以我发布了similar question。答案让我找到了 Eclipse 中的 Eclipse XML Editors and Tools plugin,它支持基于 XML Schema 的自动完成。
一旦 XML 文档与相关的 XSD 文件相关联,自动完成功能应该会自动启动。
附言考虑到您提出问题的日期,您可能已经找到了合适的解决方案。但是,我认为无论如何我都会留下这个答案,以提醒未来的访客。 HTH。
【讨论】:
Visual Studio more details here 支持使用 XML 架构进行代码自动完成。
另一种 XML 编辑器是:Microsoft XML Notepad 2007(我个人觉得这个编辑器非常不友好,非常直观但编辑文件效率不高)
【讨论】:
我认为您可以通过使用您的 XML 模式定义定义一个 XML 命名空间来实现。然后,当您使用该命名空间开始标记时,您应该根据 XML 模式定义获得基于可在该情况下使用的元素类型的建议。
【讨论】:
在 Visual Studio 2015(很可能还有早期版本)中,只需转到解决方案中 XML 文件的“属性”选项卡,并在 Schemas 属性中指定 xsd 的路径。
我没有花太多时间,但看起来VS没有将映射保存在csproj文件中,所以设置不会进入版本控制,但如果这对你来说不是重要的,那就是解决问题的快速简便的方法。
【讨论】:
在 Eclipse 中默认支持。您只需添加 XSI 和 schemaLocation,如下例所示。
<Resource xmlns="http://xml.metamug.net/resource/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xml.metamug.net/resource/1.0 http://xml.metamug.net/schema/resource.xsd">
</Resource>
正如您在上面看到的,您需要 3 个属性。由于有效的 xsd 托管在公共 url 上并在 xsi:schemaLocation 属性中提供
,因此自动完成功能有效请注意,默认情况下并非所有编辑器都支持此功能,但我知道的 Eclipse 和 Netbeans 支持。
参考: https://metamug.com/article/auto-complete-xml-editor-with-xsd-and-validations.php
【讨论】: