RelaxNG (rnc) 模式来扩展 XHTML
我想使用 Emacs 的 nxml-mode 编辑 XHTML 文件,它可以使用 rnc 用于动态验证的架构。 这全部内置于较新的 Emacs 版本中。
但是,我的 XHTML 文件包含来自另一个架构的元素。 所以
目前,nxml 抱怨是因为它使用的 XHTML 模式没有描述 foo 标签。 如何创建一个新架构来描述与现有 XHTML 架构相关的 foo 标记,以及如何使用 模式定位规则在 schemas.xml 文件中?
即:我想同时使用两个模式验证文档:内置的 XHTML 规则和一些添加某些命名空间标签的自定义规则。
I would like to edit XHTML files using Emacs' nxml-mode which can use rnc schemas for on the fly validation. This is all built in to newer Emacs versions.
However, my XHTML files contain elements from another schema. So <foo:foo> tags are valid, but only within the <xhtml:head> of the document.
Currently, nxml complains because the XHTML schema it is using does not describe the foo tag. How do I create a new schema which describes the foo tag in relation to the existing XHTML schema, and how do I apply that schema automatically using schema locating rules in the schemas.xml file?
ie: I would like to validate a document using two schemas simultaneously: the built-in XHTML rules, and some custom rules which add certain namespaced tags.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Validator.nu 有一个 预设模式,是从 James Clark 最初开发的 XHTML 模式集修改而来的,其中一个补充是 head 中的 rdf:RDF,因此该模式可能有用学习。
(我对 nxml 模式架构位置问题没有经验。)
Validator.nu has a preset schema that is modified from the the XHTML schema set originally developed by James Clark and one of the additions is rdf:RDF in head, so the schema might be useful to study.
(I have no experience with nxml-mode schema location issues.)
问题 1:我相信您不希望这里有两个模式,而是需要一个模式“包含”另一个模式,并结合 RelaxNG 教程。 我自己也在努力解决这个问题。
问题2:第二个问题我可以给你一个更好的答案; nxml-mode 在多个位置之一查找“schemas.xml”文件,该文件执行模式匹配以将文件与架构关联起来。 为了实现最简单的映射,我将此文件与 xml 文件放在同一目录中:
此文件将“auto.xml”文件与“lab.rnc”规范相关联。
Problem 1: I believe that you don't want two schemas here, but rather one schema that "include"s another, combined with the overriding/combination rules described in section 9.2 of the RelaxNG tutorial. I'm wrestling with this myself.
Problem 2: I can give you a better answer to the second problem; nxml-mode looks in one of a number of locations for a "schemas.xml" file that performs pattern-matching to associate files with schemas. For the simplest possible mapping, I have this file in the same dir as the xml file:
This file associates the "auto.xml" file with the "lab.rnc" specification.
W3C 正是这样的。 例如,以下是 XHTML+RDFa 的 rng:
参考
The W3C has just the thing. For example, here is the rng for XHTML+RDFa:
References