以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 DTD/XML Schema 』 (http://bbs.xml.org.cn/list.asp?boardid=23) ---- 同类元素逐条验证问题,翻遍论坛帖子通读W3School教程仍无解,请高手相助 (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=74606) |
-- 作者:jeff312 -- 发布时间:5/1/2009 10:30:00 PM -- 同类元素逐条验证问题,翻遍论坛帖子通读W3School教程仍无解,请高手相助 在下初学schema,初时尝到schema数据定义的强大相当兴奋,可惜走到半路上乐不起来了,请看下面这case: 需验证的XML: 设想:document是一个调查问卷,里面有一系列的question,但每个question的答案范围不同,比如第一题如果answer值是2则不允许通过。 试验: <xs:sequence> <xs:attribute type="xs:integer" name="id" fixed="1000" use="required" /> </xs:complexType> <!-- 上面的element复制一遍,只是改了一下id和属性id的fixed值,当然还有answer的值域范围 --> <xs:element name="question" id="id_2000"> <xs:sequence> <xs:attribute type="xs:integer" name="id" fixed="2000" use="required" /> </xs:complexType> XMLSPY2009企业版报错,大意是<question> 元素inconsistent,看来在schema里是不允许写成这样的(简化上面内容): 但实际情况是,每个question的answer都有独立的值域或类型(这里第一题是0-1,第二题是0- 4),我想通过它们的id属性(<xs:attribute .../>)来区分并分别针对某question独有的answer值域进行验证。 头痛,当前水平下我已经缴械投降了。
|
-- 作者:hexun831012 -- 发布时间:5/5/2009 9:46:00 PM -- XSD是定义文档结构的,结构就是结构,不应该和数据发生关系,数据的约束关系应当有应用逻辑本身来控制,这是系统设计的原则,就好比在数据库表上建立类似的约束一样不合理。 |
-- 作者:jeff312 -- 发布时间:5/8/2009 9:23:00 PM -- 多谢版主,这下知道了反倒轻松了 |
-- 作者:hexun831012 -- 发布时间:5/8/2009 9:32:00 PM -- 呵呵,你的心态很有意思,知道行不通反而轻松了,说明你有想法 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
62.500ms |