以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  请问element中的ref为什么会出错呢?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=43822)


--  作者:sxnocseven
--  发布时间:3/12/2007 2:40:00 PM

--  请问element中的ref为什么会出错呢?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="test">
  <xs:complexType>
   <xs:sequence>
    <xs:element ref="sss"/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
 <xs:element name="sss" type="xs:string"/>
</xs:schema>
上面这个就没错,下面这个只加了默认命名空间就出错了,说元素sss不错在

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="aaa" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="test">
  <xs:complexType>
   <xs:sequence>
    <xs:element ref="sss"/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
 <xs:element name="sss" type="xs:string"/>
</xs:schema>

谁知道问什么呀,谢谢


--  作者:zhy_justin
--  发布时间:3/15/2007 6:19:00 PM

--  
xmlns="aaa"
格式错误
好象不能那样写

--  作者:gemingke
--  发布时间:3/19/2007 9:20:00 PM

--  
在schema元素内加入targetNamespace="aaa"这一句
--  作者:chendx
--  发布时间:6/26/2007 5:26:00 PM

--  
xsd文件中定义了一个targetNameSpace后,其内部定义的元素,属性,类型等都属于该targetNameSpace,其自身或外部xsd文件使用这些元素,属性等都必须从定义的targetNameSpace中找!!那么,当为shema元素增加了xmlns=“aaa”而没有增加targetNamespace =“aaa”后,对本文档中定义的元素(变量)的使用(比如引用)是不可行的(颠倒亦然)。因为当xmlns没有指定别名时,那么该名词空间就不需要别名修饰,那么该名词空间就是无名的名次空间了。而由于没有使用tagetNamespace,本该放在无名名词空间中的本XSD中定义的元素、属性、变量都不在无名名词空间中了。于是当使用(比如引用)该XSD中的某个元素(变量)时,若是不加别名,则在aaa这个空间中找,明显是错误的;若是想加别名,却又无从加起。反之,则由于没有别名,无法直接从所在名词空间中寻找。(前提:名词空间不能起到其别名的作用)
--  作者:chendx
--  发布时间:6/26/2007 5:40:00 PM

--  
XSD文件中使用targetNameSpace定义了一个目标名词空间后,其内部定义的元素、属性、类型等都属于该名词空间。其自身或者外部的XSD文件使用这些元素、属性时都必须从已定义的目标名词空间中找!!于是当为shema元素增加了xmlns=“aaa”而没有增加targetNamespace =“aaa”后,对本文档中定义的元素(变量)的使用(比如引用)是不可行的(颠倒亦然)。因为当xmlns没有指定别名时,该名词空间就不需要别名修饰,那么该名词空间就是无别名的名词空间了。而由于没有定义一个目标名词空间,本该放在无别名名词空间中的这个XSD中定义的元素、属性、变量都不在默认的无别名名词空间(这个名词空间被aaa强占了)中了。于是当使用(比如引用)该XSD中的某个元素(变量)时,若是不加别名,则在aaa这个无别名名词空间中找,明显是错误的;若是想通过别名查找,aaa却又没有使用别名。反之,则由于没有别名,无法直接从所在的目标名词空间中寻找。(前提:名词空间不能起到其别名的作用)
--  作者:playaj
--  发布时间:7/9/2008 4:38:00 PM

--  
我的问题跟你的相似,加了 targetNamespace="abc"就不是有效的了,不知为啥,郁闷啊!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms