以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 DTD/XML Schema 』 (http://bbs.xml.org.cn/list.asp?boardid=23) ---- 如何在一个XML文档中引用不同schema文件声明的元素 (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=24491) |
-- 作者:chenhm66 -- 发布时间:11/21/2005 9:12:00 AM -- 如何在一个XML文档中引用不同schema文件声明的元素 使用Altova XMLSpy2006工具; 一个"persons.xsd"内容如下: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="persons"> <xs:complexType> <xs:sequence> <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:any></xs:any> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 一个“children.xsd”内容如下: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="children"> <xs:complexType> <xs:sequence> <xs:element name="childrenname" type="xs:string" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 现在想在一个“family.xml”中使用这两个文件中声明的元素,该怎么做? 比如用“children.xsd”中的chilldren扩展"persons.xsd"中的<any>? |
-- 作者:98900969r -- 发布时间:11/21/2005 11:37:00 AM -- xs:import (可用于不同命名空间)。xs:include (用于同一命名空间)。 |
-- 作者:lubing -- 发布时间:11/21/2005 4:59:00 PM -- 不错~~~~~~~~~~ |
-- 作者:chenhm66 -- 发布时间:11/23/2005 10:00:00 AM -- 谢谢,不过,能说明白一点吗? |
-- 作者:98900969r -- 发布时间:11/30/2005 3:16:00 PM -- 才明白过来你怎么会冒出这么个问题,原来是w3schools的例子。w3schools有不少好东西,可惜这个地方省略了一个重要细节------声明目标命名空间。下面是从http://www.w3schools.com/schema/schema_complex_any.asp 拷下来的。这个例子想说明,可以用children元素代替person中声明的any元素: <?xml version="1.0" encoding="ISO-8859-1"?> <persons xmlns="http://www.microsoft.com" 对这个例子,family.xsd应该声明targetNamespace为 http://www.microsoft.com,而children.xsd应该声明targetNamespace为 http://www.w3schools.com 。只有这样,实例xml文件中引用两个xsd的下面这一句才有用: |
-- 作者:厦门乞丐 -- 发布时间:12/5/2005 11:26:00 AM -- family.xsd应该声明targetNamespace为 http://www.microsoft.com,而children.xsd应该声明targetNamespace为 http://www.w3schools.com 。 你所说的targetNamespace是什么意思啊? |
-- 作者:98900969r -- 发布时间:12/5/2005 4:50:00 PM -- targetNamespace 是目标命名空间。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
48.828ms |