我开始使用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前缀以及如何解释它,以便它链接到真实文件。
有人有任何建议吗?
非常感谢!
答案 0 :(得分:2)
我会尝试以下方法:
在某些情况下,允许使用多个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的工具。可能值得一试......