Visual Studio> XML分析器>注册URI前缀

时间:2009-05-21 12:54:51

标签: xml visual-studio parsing uri

我开始使用Visual Studio编写我的XUL,因为它给了我智能感知和验证,因为我使用了一个特殊的XUL xml架构。

这种方法仍然存在一些问题,我想修复它以使VS成为更有用的XUL-IDE。

VS对chrome-protocol一无所知,并在下面的xml代码中给出了一个错误(“URI前缀无法识别”):

<!DOCTYPE window SYSTEM "chrome://myApp/locale/main.dtd">

这不是VS的错。因为它不知道协议,它不能解释URI,它不知道main.dtd所在的位置,因此不知道在那里声明的实体,这将给出一些其他验证错误其他地方。

我的目标是扩展XML解析器或VS或其他任何东西,以便它可以解释URI。这不应该是一项艰巨的任务,因为chrome所做的就是根据“chrome.manifest”文件中的信息将URI映射到文件路径,所以

铬://myApp/locale/main.dtd

实际上就像是

文件:/// C:/somefolder/myapp/locale/main.dtd

我只需要知道,我如何告诉VS / XML解析器有关URI前缀以及如何解释它,以便它链接到真实文件。

有人有任何建议吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

我会尝试以下方法:

  1. 在下一个使用另一个Doctype标记 除了Chrome之外的一行 这个使用file:// URI 方案。
  2. 如果那不起作用,请尝试     单独使用文件URI     完全替换chrome URI。
  3. 在某些情况下,允许使用多个doctype标记。

答案 1 :(得分:1)

在适合您安装的Visual Studio安装目录下潜入Program Files。

你会找到一个Xml的子目录,在那个模式中可以找到Schemas。

例如,在我的系统上,目录是:

  

C:\ Program Files \ Microsoft Visual Studio 9.0 \ Xml \ Schemas

您在此处放置的任何模式文件都将根据模式的URI与您编辑的XML文件进行匹配。

我相信(但尚未测试)DTD以同样的方式得到支持;只需将DTD放在此目录中,并确保DTD的URI匹配。

附注:模式和DTD使用URI(通用资源标识符),而不是URL(通用资源定位器)。 URI实际上没有提供有关其中的任何信息。这只是一个名字。

<强>更新

事实证明Visual Studio不支持DTD,所以我的想法不会浮动。

这是另一种可能性:由于Visual Studio 支持模式,因此您可以通过将DTD转换为模式来获得一些牵引力。快速谷歌找到了DTD2Schema,这是W3网站上基于perl的工具。可能值得一试......