我有这样的文件:
<d:block xmlns:d="D" xmlns:b="B" xmlns="default" name="popover">
<d:description>...</d:description>
<d:sample>
<b:popover>
...some b:stuff...
</b:popover>
</d:sample>
</d:block>
本文档的模式如下:
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="block" ns="D">
<attribute name="name"/>
<element name="description">
<text/>
</element>
<element name="sample">
<ref name="anything"/>
</element>
</element>
</start>
<define name="anything">
<element>
<anyName>
<except>
<nsName ns="D"/>
</except>
</anyName>
<zeroOrMore>
<choice>
<attribute>
<anyName/>
</attribute>
<text/>
<ref name="anything"/>
</choice>
</zeroOrMore>
</element>
</define>
</grammar>
“Anything”字面意思是除D-namespaced之外的任何东西。
我想为B命名空间创建另一个模式,以便对任何包含B:namespace的任意XML使用它。
如何为命名空间创建Schema,而不是为完整文档创建?
无法得到这个。
答案 0 :(得分:0)
这种模式应该有效。您只需在名为define
的{{1}}元素中定义B名称空间的元素。
BElements