gpt4 book ai didi

xml - 如何在我的 Xml 架构中包含 Html

转载 作者:数据小太阳 更新时间:2023-10-29 02:16:28 25 4
gpt4 key购买 nike

我正在尝试允许 Html 标记作为我的一种类型的子标记。

<xs:complexType name="Html">
<xs:sequence>
<!-- Attempting to allow us to include necessary HTML right into our XML -->
<xs:any minOccurs="0" namespace="http://www.w3.org/1999/xhtml"></xs:any>
</xs:sequence>
</xs:complexType>

<xs:element name="Html" type="Html"></xs:element>

目的是允许在该类型的任何元素内使用 Html 标签,但对于格式良好的 html 不一定需要周围的 html 或 body 标签。

如何将标签包含到我的 XSD 中?

最佳答案

如果您想在 XML 中与自定义元素一起使用 HTML 标记(即元素),则它们应该是 XHTML 元素。

当然,您可以定义一些您自己的 HTML 标签,但那样会更像 HTML,因为只有您自己知道这是“HTML”。(此外,您将必须根据需要定义 HTML 的所有元素,这将构成相当大的架构!)

要让所有人知道您确实使用了 HTML 元素,它们必须属于 XHTML 命名空间:

http://www.w3.org/1999/xhtml

并且该 namespace 由 W3C 定义和控制。因此,与其定义您自己的东西,不如将 XHTML 命名空间导入到您的模式中,这意味着为 XHTML 导入模式。XHTML 的架构可通过以下 URL 找到: http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd

因此,您的初始 XSD 我将重写如下:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xhtml="http://www.w3.org/1999/xhtml">

<!-- Importing XHTML namespace -->
<xs:import namespace="http://www.w3.org/1999/xhtml"
schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd"/>

<!--
Here, you define your 'Html' type the same as they define
the content of <body> element.

Notice that 'xhtml' namespace prefix must be used with each reference
to a W3C XHTML component.
-->
<xs:complexType name="Html">
<xs:complexContent>
<xs:extension base="xhtml:Block">
<xs:attributeGroup ref="xhtml:attrs"/>
<xs:attribute name="onload" type="xhtml:Script"/>
<xs:attribute name="onunload" type="xhtml:Script"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<!-- Now, your custom 'Html' element has the same content model
as the standard XHTML <body> element! -->
<xs:element name="Html" type="Html"></xs:element>

</xs:schema>

关于xml - 如何在我的 Xml 架构中包含 Html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com