Exalt
用于验证和格式化 XML 文档的 Sublime Text 插件
详细信息
安装
- 总数 15K
- Win 9K
- Mac 4K
- Linux 2K
2021年8月6日 | 2021年8月5日 | 2021年8月4日 | 2021年8月3日 | 2021年8月2日 | 2021年8月1日 | 2021年7月31日 | 2021年7月30日 | 2021年7月29日 | 2021年7月28日 | 2021年7月27日 | 2021年7月26日 | 2021年7月25日 | 2021年7月24日 | 2021年7月23日 | 2021年7月22日 | 2021年7月21日 | 2021年7月20日 | 2021年7月19日 | 2021年7月18日 | 2021年7月17日 | 2021年7月16日 | 2021年7月15日 | 2021年7月14日 | 2021年7月13日 | 2021年7月12日 | 2021年7月11日 | 2021年7月10日 | 2021年7月9日 | 2021年7月8日 | 2021年7月7日 | 2021年7月6日 | 2021年7月5日 | 2021年7月4日 | 2021年7月3日 | 2021年7月2日 | 2021年7月1日 | 2021年6月30日 | 2021年6月29日 | 2021年6月28日 | 2021年6月27日 | 2021年6月26日 | 2021年6月25日 | 2021年6月24日 | 2021年6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 2 | 2 | 3 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 2 | 0 | 2 | 3 | 2 | 0 | 0 | 1 | 3 | 2 | 0 | 1 | 0 | 1 | 0 | 0 | 2 | 2 | 0 | 0 | 0 | 1 | 0 | 2 | 2 | 0 | 0 | 0 | 1 | 3 | 2 | 9 | 2 | 0 |
Mac | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 3 | 0 | 0 |
读我
Exalt
Exalt 是一个用于验证和格式化 XML 文档的 Sublime Text 插件。
注意: 您可能还想要查看 LSP-lemminx。
截图中的主题是 Boxy。
功能
即时验证文件
使用 lxml 实时验证 XML、XHTML 和 XSLT 文件,以下是一些验证机制:
- 文档类型定义 (DTD)
- XML 字面量 (XSD)
- RelaxNG 字面量 (RNG)
- Schematron 字面量
XSLT 验证
如果当前文件的语言设置为 XSLT,Exalt 会自动根据 Norman Walsh 的 XSLT 样式表 Relax NG 语法进行验证。
XSD 验证
Exalt 使用根元素的 xsi:schemaLocation
或 xsi:noNamespaceSchemaLocation
属性进行验证。
这意味着 Exalt 可以验证类似以下形式的 Maven POM 文件
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>foobar</groupId>
. . .
</project>
您可能需要设置一个 XML 目录,以避免从互联网获取模式。有关更多信息,请参阅 安装。
xml-model
验证
Exalt 还支持 xml-model
处理指令。这意味着您可以在您的 DITA XML 1.2 文档的根元素之前(当然,在 XML 声明之后)有一个类似这样的处理指令
<?xml-model href="urn:dita-ng:dita:rng:topic.rng"
schematypens="http://relaxng.org/ns/structure/1.0"?>
Exalt将对href
虚拟属性中的模式进行验证。它使用您已设置的XML目录来解决href
虚拟属性中的路径和schematypens
虚拟属性以确定模式的类型。
您还可以在href
虚拟属性中使用绝对或相对路径
<?xml-model href="file:///etc/xml/common/schemas/docbook/docbook-5.0/docbook.rng"
schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="../docbook-5.0/xsd/docbook.xsd"
schematypens="http://www.w3.org/2001/XMLSchema"?>
<?xml-model href="file:///etc/xml/common/schemas/dita/schematron/dita-1.2-for-xslt1.sch"
schematypens="http://purl.oclc.org/dsdl/schematron"?>
如果您的文件无法验证,您可以通过按下⌘ + Ctrl + E
跳转到验证错误,如果它尚未在视图中显示。
格式XML和HTML文件
按下⌘ + Ctrl + X
以重新格式化(美化打印)XML或HTML文件。如果您没有选择任何内容,Exalt将格式化整个文档。如果您有一个或多个选择,Exalt将格式化这些选择。
注意:在格式化选择时,Exalt假定该选择是格式良好的XML片段。它将尝试恢复,但如果您的选择不是格式良好的,结果可能不是您想要的。
Exalt尝试通过libxml2的recover
标志来格式化非格式良好的XML文件。
模式缓存
为了性能,Exalt会缓存它使用的模式。如果您正在处理使用大型模式或模式存储在计算机以外的位置的XML文档,这将非常有用。
但是,这意味着如果您正在开发模式,模式中的更改直到您清除Exalt模式缓存才会生效。
要清除模式缓存,通过Sublime Text命令调色板运行Exalt: Clear Parser Cache
命令。如果您经常这样做,您可能想将此命令添加到Sublime Text设置中的快捷键。
安装
- 通过
Package Control
安装Exalt. - 重启Sublime Text。
(可选,但推荐) 在
User/Exalt.sublime-settings
中,设置您的XML目录文件的路径。例如
{ "xml_catalog_files": ["/etc/xml/catalog", "~/.schemas/catalog.xml"] }
默认情况下,插件使用在
Exalt/Exalt.sublime-settings
中定义的目录文件。这些目录文件可能在您的系统中存在或不存在。如果您愿意,可以使用我的
catalogs
存储库来安装一组常用XML目录和模式。只需将此插件的xml_catalog_files
设置指向您克隆存储库中的catalog.xml
文件。或者,您可以将
catalogs
克隆到/etc/xml
,并创建含有以下内容的/etc/xml/catalog.xml
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <nextCatalog catalog="catalogs/catalog.xml"/> </catalog>
如果您这样做,您不需要设置
xml_catalog_files
设置。注意:如果您以任何方式更改XML目录,您需要重新启动Sublime Text 3才能使更改生效。
已知问题
致谢
- Norman Walsh 编写的 RelaxNG语法用于XSLT样式表。
- @hoest 编写 SublimeXSLT,我从其中借用了
XSLT.tmLanguage
。