以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  [分享]schema 数据关联解析方法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=85078)


--  作者:meng7yu
--  发布时间:6/3/2010 2:46:00 PM

--  [分享]schema 数据关联解析方法
最近遇到一个问题,把解决方法和大家分享下.
问题描述:在schema里要定义2个元素,根据属性值type的不同,有不同的子元素结构。比如:
<student type="a">
<id>a<id>
<name>b<name>

<student type="b">
<id>a<id>
<name>b<name>
<class>c<class>

问题:由于元素名字相同,而结构不同,无法通过schema本身来完成定义工作。

解决方法:定义2个类型如下:
<xsd:complexType name="a">
     <xsd:sequence>
         <xsd:element name="id" type="xsd:string"/>
         <xsd:element name="name" type="xsd:string"/>
     </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="b">
     <xsd:sequence>
         <xsd:element name="id" type="xsd:string"/>
         <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="class" type="xsd:string"/>
     </xsd:sequence>
</xsd:complexType>
读入特定xml后,首先通过解析xml取出类型值,可以是A或者b,然后再通过对schema文件的处理,插入特定的elment,比如如果类型是a,则插入:
    <xsd:element name="student" type="a"/>
即通过动态生成schema来完成对数据关联的xml的解析。
欢迎拍砖,还有更好的想法可一起分享。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.021ms