以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  请教:如何根据某个节点值动态约束某个节点下的节点标签  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=53956)


--  作者:andyhoward
--  发布时间:10/17/2007 2:57:00 PM

--  请教:如何根据某个节点值动态约束某个节点下的节点标签
xml文档如下:
<?xml version="1.0" encoding="UTF-8"?>
<root>
 <object>
  <type>a</type>
  <content>
   <a1>a1</a1>
  </content>
 </object>
 <object>
  <type>b</type>
  <content>
   <b1>bbb</b1>
   <b2>ccc</b2>
  </content>
 </object>
</root>

我希望定义的schema能够满足,当objcet下的type标签值为b时,它下面的content只允许出现b1和b2两个标签,当type标签值为a时,它下面的content中只允许出现a1标签

请大侠帮忙...


--  作者:danielhy
--  发布时间:10/17/2007 4:06:00 PM

--  
和我的问题一样哈,同问。。。

--  作者:danielhy
--  发布时间:10/17/2007 5:43:00 PM

--  
看了下SCHEMATRON,通过ASSERT可以做到。不过好像格式上的FORMAT好像不如SCHEMA好用
--  作者:gemingke
--  发布时间:10/17/2007 7:54:00 PM

--  
XML Schema目前做不到动态约束,请另外想办法。
--  作者:andyhoward
--  发布时间:10/19/2007 1:45:00 PM

--  
这样啊,太可惜了
如果通过程序进行验证的话也比较繁琐,感觉如果schema如果能验证的话,能简单很多
--  作者:andyhoward
--  发布时间:10/19/2007 1:54:00 PM

--  
我想,可以通过针对 不同的type再进行一次校验,貌似应该可以实现
不过我用的是jdom,如果验证2次的话,我需要将document两次打成stream对象
。。。。。。残念
--  作者:danielhy
--  发布时间:10/22/2007 5:39:00 PM

--  
SCHEMA做不到的。只有用SCHEMATRON,挺好用的。
把SCHEMATRON加入到SCHEMA中无效。不知道是不是只留了个接口
只好把SCHEMA和SCHEMATRON结合起来用
--  作者:andyhoward
--  发布时间:10/23/2007 9:23:00 AM

--  
SCHEMATRON,这个我还没接触过,我也去搜一下
了解了解,多谢多谢楼上的
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms