我如何编写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或其他地方包含或省略什么?
答案 0 :(得分:1)
如果您想要任何地方,可以使用xs:any
:
<xs:any processContent="skip" namespace="http://www.foo.com/hello/world"/>
...例如,允许来自提供的命名空间的任何元素。