【问题标题】:Using XML Schema for code autocomplete in my XML editor在我的 XML 编辑器中使用 XML Schema 进行代码自动完成
【发布时间】:2010-06-02 14:00:32
【问题描述】:

我有 XSD 文件(例如)http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd,我想用它在我的 xml 编辑器中添加代码自动完成功能(我更喜欢 Eclipse,但任何其他免费编辑器都可以)。

有可能吗?如果是,我该怎么做?

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    我遇到了类似的问题,但在这里没有找到解决方案,所以我发布了similar question。答案让我找到了 Eclipse 中的 Eclipse XML Editors and Tools plugin,它支持基于 XML Schema 的自动完成。

    一旦 XML 文档与相关的 XSD 文件相关联,自动完成功能应该会自动启动。

    附言考虑到您提出问题的日期,您可能已经找到了合适的解决方案。但是,我认为无论如何我都会留下这个答案,以提醒未来的访客。 HTH。

    【讨论】:

    • 链接现在已损坏,但我发现 this(包括 cmets)可以正常工作。基本上和你说的上下文是一样的。默认的 eclipse xml 编辑器将不起作用。但是我们在安装“Web Developer Tools”插件时所做的相同配置,将完美运行!
    【解决方案2】:

    Visual Studio more details here 支持使用 XML 架构进行代码自动完成。

    另一种 XML 编辑器是:Microsoft XML Notepad 2007(我个人觉得这个编辑器非常不友好,非常直观但编辑文件效率不高)

    【讨论】:

      【解决方案3】:

      我认为您可以通过使用您的 XML 模式定义定义一个 XML 命名空间来实现。然后,当您使用该命名空间开始标记时,您应该根据 XML 模式定义获得基于可在该情况下使用的元素类型的建议。

      【讨论】:

        【解决方案4】:

        在 Visual Studio 2015(很可能还有早期版本)中,只需转到解决方案中 XML 文件的“属性”选项卡,并在 Schemas 属性中指定 xsd 的路径。

        我没有花太多时间,但看起来VS没有将映射保存在csproj文件中,所以设置不会进入版本控制,但如果这对你来说不是重要的,那就是解决问题的快速简便的方法。

        【讨论】:

          【解决方案5】:

          xsi:schemaLocation

          在 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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-15
            • 2018-04-10
            • 2017-04-15
            • 1970-01-01
            • 1970-01-01
            • 2010-09-11
            相关资源
            最近更新 更多