以文本方式查看主题

-  计算机科学论坛  (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=9208)


--  作者:孤舟蓑笠翁
--  发布时间:8/8/2004 2:02:00 PM

--  请教含多个命名空间且可能相互嵌套的schema写法
有如下XML文档,包含多个命名空间元素,不同命名空间元素相互嵌套,比如其中的dc:title中有dcq:alternative,而dcq:alternative中又有dc:description。请教对应的schema编写方法,谢谢。
<?xml version="1.0" encoding="utf-8"?>
<dc:description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcq="http://purl.org/dc/terms/">

<dc:title>
    <dc:description xml:lang="zh-cn"></dc:description>
    <dcq:alternative>
       <dc:description xml:lang="zh-cn"></dc:description>
    </dcq:alternative>
  </dc:title>

</dc:description>


--  作者:hoyt
--  发布时间:8/9/2004 9:13:00 PM

--  
看看下面这个是不是你的要求?
a.xsd 文件
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:import schemaLocation="b.xsd"/>
 <xs:complexType name="aType">
  <xs:sequence>
   <xs:element name="aFirst" type="xs:string"/>
   <xs:element name="aSecond" type="bType"/>
  </xs:sequence>
 </xs:complexType>
</xs:schema>

b.xsd文件
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:import schemaLocation="a.xsd"/>
 <xs:complexType name="bType">
  <xs:sequence>
   <xs:element name="bFirst" type="xs:string"/>
   <xs:element name="bSecond" type="xs:string"/>
  </xs:sequence>
 </xs:complexType>
 <xs:element name="b">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="bFirst"/>
    <xs:element name="a" type="aType"/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>

b.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by hoyt (zhongguo) -->
<!--Sample XML file generated by XMLSPY v2004 rel. 3 U (http://www.xmlspy.com)-->
<b xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="b.xsd">
 <bFirst>bfirst</bFirst>
 <a>
  <aFirst>afirst</aFirst>
  <aSecond>
   <bFirst>bfirst2</bFirst>
   <bSecond>bsecond</bSecond>
  </aSecond>
 </a>
</b>


--  作者:孤舟蓑笠翁
--  发布时间:8/10/2004 4:07:00 PM

--  
感谢您的及时指教。
先回复,待理解后再来一次感谢。
--  作者:孤舟蓑笠翁
--  发布时间:8/10/2004 4:52:00 PM

--  
好象不行。我抄写代码制作成相应文件后,在Microsoft Visual Studio .NET 2003中打开时,报:
异常“System.StackOverException”在DefaultDomain中发生,可能还是因为命名域的写法上有点问题。
我也理解到不同命名域元素相互嵌套应该相互导入schema文件,但由于是刚上手,总是不能很好处理带命名域前缀的写法,所以,再次请教:就按我上次问题所写样例如何编写带不同命名域的schema文件?
给您添麻烦了。


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