以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  simpleContent的问题,有请高手们回答  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=45296)


--  作者:lao_cai
--  发布时间:4/12/2007 9:51:00 AM

--  simpleContent的问题,有请高手们回答
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://your_namespace"
targetNamespace="http://your_namespace"
elementFormDefault="qualified">
 <xsd:element name="personinfo" type="weightlessPerson"/>
 <xsd:complexType name="malefemalePerson">  
  <xsd:simpleContent>
   <xsd:extension base="xsd:string">
   <xsd:attribute name="sex"/>
   </xsd:extension>  
  </xsd:simpleContent>  
 </xsd:complexType>
 <xsd:complexType name="weightlessPerson">  
  <xsd:simpleContent >
   <xsd:restriction base="malefemalePerson">
   <xsd:minLength value="5"/>
   <xsd:attribute name="sex" use="prohibited"/>   
   </xsd:restriction>  
  </xsd:simpleContent>  
 </xsd:complexType>
</xsd:schema>
simpleContent是由简单类型派生复杂类型,按理malefemalePerson是复杂类型,它不能使用simpleContent来派生weightlessPerson,但事实是可以,如果把simpleContent改成complexContent反而错了,为什么?
--  作者:gemingke
--  发布时间:4/12/2007 12:35:00 PM

--  
可能要 具体看看XML Schema Part 1 Structures 才能清楚。不过是全英文的,我得阅读速度会变很慢。。。
--  作者:tianlijian
--  发布时间:4/29/2007 7:56:00 AM

--  

我也刚开始学,不太清楚啊


--  作者:gogy
--  发布时间:4/29/2007 12:10:00 PM

--  
呵呵,概念理解上有错误啊。
一个复杂元素类型的定义使用<xs:simpleContent>,还是使用<xs:complexContent>来定义,不是看它由什么派生出来。那就是本末倒置了啊。
得看原XML实例文档中的元素是简单内容(simpleCont)还是复杂内容(complexContent)的。然后决定使用<xs:simpleContent>还是使用<xs:complexContent>。
然后才看如何定义这个内容模型,是约束派生,还是扩展派生,用哪个基类型。
扩展派生<xs:extension>,主要通过添加子元素或属性实现。你上面那个实际是由simpleContent扩展一个属性,得到的仍然是一个simpleContent。因为你没有扩展子元素。
而这仍然符合原来的XML文档。
“simpleContent是由简单类型派生复杂类型”,实际上是不对的。
--  作者:lao_cai
--  发布时间:5/11/2007 11:41:00 AM

--  
关键是没有子元素,而带有属性的元素是否属于简单内容?这里的简单类型与简单数据类型可能不是一回事,谢谢你的回复
--  作者:gogy
--  发布时间:5/12/2007 10:30:00 PM

--  
关键是没有子元素,而带有属性的元素是否属于简单内容?
是的。simpleContent正是这样的。


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