【问题标题】:Where can I mix-in XML from another namespace?我可以在哪里混合来自另一个命名空间的 XML?
【发布时间】:2017-04-26 17:05:40
【问题描述】:

SVG 可以包含在 XHTML 中。 MathML 也可以。但是哪些规则管理哪里任何 XML 方言可以包含在另一个方言中?包含的元素是否必须是通常的根元素?

例如,我想在 SVG 中包含 HTML 表格。我不太关心工作示例(我有一个),我关心的是规则和正确性。

【问题讨论】:

  • 只要您使用 XHTML(读取 XML),您几乎可以将它放入 SVG 中任何您喜欢的地方。那是完全不受限制的。只要正确声明了所有命名空间(否则无论如何都不会加载 SVG),您不需要从 <html> 开始。有实际限制,即您不应该在浏览器的渲染引擎上抛出<td>,而不先设置<table>

标签: xml svg xhtml xml-namespaces


【解决方案1】:

XHTML 只是 HTML 的 XML 语法。所以它遵循 HTML 的内容模型规则。这表示 SVG <svg> 元素和 MathML <math> 元素是 Flow Content。也就是说,他们只能去预计Flow Content 的地方。例如,它们不能是uloltabletr 等元素的子元素。并且没有其他 SVG 或 MathML 元素被定义为 HTML 命名空间中任何元素的有效子元素。

所以你不能有效地在 XHTML 中包含来自其他命名空间的元素。如果你确实包含了这样的元素,那么它就不再是纯 XHTML,而是 XHTML + something-else。

【讨论】:

  • 因此假设任何 XML 应用程序都可以包含在任何其他 XML 应用程序中(如果后者没有明确允许)是错误的吗? -- 你的“XHTML + something-else”的例子是一个新标准,而不是一个本身有效的扩展。
猜你喜欢
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多