以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (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=29307) |
-- 作者:gemingke -- 发布时间:3/26/2006 12:52:00 PM -- [求助]再次来求助~~~比上次的更难~~~ 现在遇到一个更加棘手的问题 在甲方提交的某商务文档中,有这么一个东西: 这里问的是,Schema里如何来实现?因为所有的商务文档都由相应的Schema约束 PS: 好像想到一个方法,在用choice处理A、B时,把A做成复杂型,包含X、Y。不过,还是想问问有没有其他方法 |
-- 作者:gemingke -- 发布时间:3/26/2006 1:23:00 PM -- "PS: 好像想到一个方法,在用choice处理A、B时,把A做成复杂型,包含X、Y。不过,还是想问问有没有其他方法" 此路不通~~~~~求助啊~~~ |
-- 作者:gemingke -- 发布时间:4/2/2006 8:34:00 PM -- ...................没人理会 |
-- 作者:feirate -- 发布时间:4/3/2006 7:57:00 AM -- 说说为什么你上面说的方法不通 |
-- 作者:feirate -- 发布时间:4/3/2006 8:09:00 AM -- <xs:element name='a'> <xs:complesType> <xs:sequence> <xs:element ref="x" use="required"/> <xs:element ref="y" use="required"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name='b'> |
-- 作者:gemingke -- 发布时间:4/3/2006 10:19:00 AM -- <xs:element name="选择"> <xs:complexType> <xs:sequence > <xs:choice> <xs:element name="A" type="xs:boolean"/> <xs:element name="B" type="xs:boolean"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> 这里A、B都需要用布尔型,因为这些选项是否被选择都需要保存到数据库里,所以要用布尔型,这样一来,就没有办法把A或B做成复杂型
|
-- 作者:feirate -- 发布时间:4/3/2006 1:17:00 PM -- <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="选择"> <xs:complexType> <xs:sequence > <xs:choice> <xs:element name="A" type="aType"/> <xs:element name="B" type="bType"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name='aType'> <xs:complexType name='bType'> <xs:element name="x" type="xs:string"/> |
-- 作者:feirate -- 发布时间:4/3/2006 1:25:00 PM -- 抱歉,刚才没看清楚...是否被选择要放在数据库里是吧... 但是一定要把A,B弄成boolean型,然后存储它们的值么? 可以设定A的ID为1,b为0,如果A被选择就存入A的id值,B被选择就存入B的id;反之存入A的id值-1,B的id值+1; 我是初学...不知道能不能存入id值,不过我觉得这种想法应该可以... 就是可以转变一下,不一定要把A,B设定成boolean型来存储它们的值。 |
-- 作者:SATOKO2006 -- 发布时间:4/3/2006 1:37:00 PM -- 看看,研究研究,,, |
-- 作者:gemingke -- 发布时间:4/3/2006 3:15:00 PM -- 存入ID值么?还没有试验过~~~ 而且,实际情况是4选1,其中A不需要填X、Y项,B、C、D都需要填写 比较麻烦的是,还要考虑数据库的 存和取,不仅仅是文档上的数据要保存到数据库,还要数据库里的数据能生成文档~~~ |
-- 作者:feirate -- 发布时间:4/3/2006 3:36:00 PM -- 抱歉,...我还是个学生...数据库虽然学过..但是不太不懂.. 我认为流程应该是这样的... 对数据进行操作应该是在生成xml的数据之前,就是选了什么,不选什么,我们只把选了的数据存入xml文档,然后把元素的值(不知道元素要不要存)存入数据库; 你说的选了A不需要选X,Y项,B、C、D,这需要,这应该是PHP,ASP或者脚本(如果是通过浏览器的话)这些语言进行限制,然后才把数据生成xml文件... 个人意见...因为对这些了解不多...所以也不知道说的对不对...不过我的想法就是这样的,如果有什么不对的地方请指出来...好让我学习改进 |
-- 作者:gemingke -- 发布时间:4/3/2006 11:02:00 PM -- 俺不懂的就是程序语言~~~~脚本都不懂~~~ 呵呵,看看还有没有其他的解决办法吧 |
-- 作者:gemingke -- 发布时间:4/6/2006 12:42:00 AM -- 哎,很快就要给 上级答复了,还是没有办法解决 |
-- 作者:feirate -- 发布时间:4/6/2006 8:01:00 AM -- <xs:element name="选择"> <xs:complexType> <xs:sequence> <xs:choice> <xs:element name="A" type="xs:boolean"> <xs:complexType> <xs:sequence> <xs:element ref="x" minOccurs="1"/> <xs:element ref="y" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="B" type="xs:boolean"> <xs:complexType> <xs:sequence> <xs:element ref="x"/> <xs:element ref="y"/> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="x" type="xs:string"/> <xs:element name="y" type="xs:string"/>
|
-- 作者:gemingke -- 发布时间:4/6/2006 12:00:00 PM -- 为元素指定了数据类型后,还能被定义为复杂型? |
-- 作者:gemingke -- 发布时间:4/6/2006 12:53:00 PM -- 行不通啊 |
-- 作者:feirate -- 发布时间:4/6/2006 10:57:00 PM -- 似乎用派生或者约束可以...不记得了... |
-- 作者:feirate -- 发布时间:4/6/2006 10:58:00 PM -- 错了,是扩展或约束...定义成简单的boolean型,然后扩展...不知道,试试看吧 看看派生那部分 |
-- 作者:gemingke -- 发布时间:4/7/2006 9:59:00 PM -- 不行~~~扩展只跟根据原类型来操作,不可能由boolean扩展出string的子元素来 |
-- 作者:feirate -- 发布时间:4/7/2006 10:04:00 PM -- 给Qr发消息问,叫他来看看...我就知道他常在线... |
-- 作者:gemingke -- 发布时间:4/7/2006 10:12:00 PM -- Qr是谁 ?我在这里时间不长 |
-- 作者:feirate -- 发布时间:4/7/2006 11:13:00 PM -- [XML基础]的版主 |
-- 作者:gemingke -- 发布时间:4/8/2006 5:37:00 PM -- 呃,他说他对schema不熟悉,得另外请高人了 |
-- 作者:zieglar -- 发布时间:4/9/2006 3:23:00 PM -- 我问一下~gemingke你是打算确定了以后用什么样的方法写到数据库里面呢 |
-- 作者:zieglar -- 发布时间:4/9/2006 3:27:00 PM -- 如果是要经过其它程序语言的处理再写进数据库的话,那么还是按feirate说的采取定义值的方法,而不是定义布尔值来传~ 如果你是直接就是xml和数据库的连接~那我就没话说了~~我还没有研究那么深入~~ |
-- 作者:gemingke -- 发布时间:4/9/2006 3:36:00 PM -- 嗯 ,看来只好试试定义值的方法了 |
-- 作者:gemingke -- 发布时间:4/9/2006 3:38:00 PM -- 因为我一直想在schema里面实现他们的关系,并且反映到xml文件里。我看了看,key和keyref好像不能实现这个目的 |
-- 作者:98900969r -- 发布时间:4/14/2006 1:05:00 AM -- 你是不是这个意思(假设若A出现则XY不一定出现,若B/C/D出现则XY一定出现): <?xml version="1.0" encoding="UTF-8"?>
|
-- 作者:gemingke -- 发布时间:4/14/2006 9:07:00 AM -- 确实是这个意思 只是为何这里用group?而不是complexType或element? ps:俺脑子确实有点死,没想过把XY拉出来定义,放在choice外面~~~ |
-- 作者:feirate -- 发布时间:4/14/2006 9:18:00 AM -- 晕!...确实把A放到choice的外面多好...倒是知道把xy放到外面用ref....可惜没想到group |
-- 作者:zieglar -- 发布时间:4/16/2006 7:54:00 PM -- 解的精辟啊~又学到了新东西~ |
-- 作者:Arthur -- 发布时间:4/17/2006 9:36:00 AM -- 用XML Schema模式的命名空间呀,不出意外是可以的 |
-- 作者:gemingke -- 发布时间:4/17/2006 11:28:00 AM -- 命名空间?楼上的知道怎么做吗? |
-- 作者:yaofenggis -- 发布时间:8/23/2009 10:50:00 AM -- |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
134.766ms |