将XML名称空间与XHTML混合使用

时间:2010-12-23 05:28:16

标签: xhtml xsd xml-namespaces

我如何编写XML模式,其中允许使用的元素与来自另一个名称空间的元素混合使用?

具体来说,如果我想在XHTML文档中使用一些元素进行模板化:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tmp="http://www.example.com/~/template">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

    <div id="idName">

        <tmp:region name="regionName">

            <div class="className">

                <h1>
                    <tmp:data name="dataName1">
                        <tmp:format type="formatType">
                            <tmp:param name="paramName" value="paramValue" />
                            <tmp:param name="paramName" value="paramValue" />
                        </tmp:format>
                    </tmp:data>
                </h1>

                <div>
                    <tmp:data name="dataName2" />
                </div>

            </div>

        </tmp:region>

    </div>

</body>

</html>

我不希望任何人编写架构,我正在这样做(我认为正确)但是如上所述,如何确保tmp命名空间中的元素可以如图所示使用在这个例子中?我需要在XSD或其他地方包含或省略什么?

1 个答案:

答案 0 :(得分:1)

如果您想要任何地方,可以使用xs:any

<xs:any processContent="skip" namespace="http://www.foo.com/hello/world"/>

...例如,允许来自提供的命名空间的任何元素。