如果您想在您的 XML 和您的自定义元素中使用 HTML 标记(即元素),它们应该是XHTML元素。
当然,您可以定义一些您自己的 HTML 标记,但这将与 HTML 非常相似,因为只有您会知道这是“HTML”。(此外,您必须根据需要定义 HTML 的所有元素,这将构成相当大的架构!)
为了让大家知道您确实使用了 HTML 元素,它们必须属于XHTML 命名空间:
http://www.w3.org/1999/xhtml
并且该命名空间由 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>