xml 文档架构基础问题

ProjectDD 2010-07-26 02:12:51
我想知道类似这样一段xml文档 的架构应该 怎么写

这段xml文档是合法的吗?(我觉得好象可以)

<root>
aaaa
<item1 attr1="1">x</item1>
</root>


我尝试一下 这样写
<xs:element name="root" type="tt"/>
<xs:complexType name="tt">
<xs:complexContent>
<xs:extension base="?"><--如果?处写xs:string的话好象不行,这里好象只能写其它的complexType的名称,就此来求证是不是果真如此;-->
<xs:sequence>
<xs:element name="item1" type="xs:string" />
</xs:sequence>
<xs:attribute name="attr1" type="xs:int" fixed="US" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoliCarl 2010-07-26
  • 打赏
  • 举报
回复
顶一下
xiaoliCarl 2010-07-26
  • 打赏
  • 举报
回复
定个积分
ProjectDD 2010-07-26
  • 打赏
  • 举报
回复
http://www.w3school.com.cn/schema/schema_complex_mixed.asp

就是加个属性 mixed="true"就可以变成混合内容的元素

我想复杂了,而且 1楼的代码 错误太多,呵呵
jshi123 2010-07-26
  • 打赏
  • 举报
回复
1.合法
2.可以,base可以是内置的数据类型, XML Schema extension Element
用xsd工具自动生成的schema:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="root" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="root" msdata:IsDataSet="true" msdata:Locale="en-US">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="item1" nillable="true">
<xs:complexType>
<xs:simpleContent msdata:ColumnName="item1_Text" msdata:Ordinal="1">
<xs:extension base="xs:string">
<xs:attribute name="attr1" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
ProjectDD 2010-07-26
  • 打赏
  • 举报
回复
好象这样可以

<xs:complexType name="sex">
<xs:simpleContent>
<xs:extention base="string">
<xs:enumeration value="male" />
<xs:enumeration value="female" />
</xs:simpleContent>
</xs:complexType>

<xs:complexType name="tt">
<xs:complexContent>
<xs:extention base="sex">
<xs:sequence>
<xs:element name="item1" type="xs:string"/>
</xs:sequence>
<xs:attribute name="attr1" type="xs:int"/>
</xs:extention>
</xs:complexContent>
</xs:complexType>

<xs:element name="root" type="tt"/>

//

<root>
male
<item1 attr1="1">abcde</item1>
</root>
《疯狂XML讲义》主要以XML为核心,深入地介绍了XML的各种相关知识。《疯狂XML讲义》作为疯狂Java体系图书之一,依然保持该体系图书系统、全面的特点:不仅详细介绍了XML文档的各种知识,还通过案例示范了实际开发中如何应用XML知识。 《疯狂XML讲义》主要分为五个部分。第一部分介绍了XML、DTD、XML Schema等基础知识,这些知识主要教读者如何定义有效的XML文档,这部分内容是深入学习后面知识的基础,也是每个使用XML的开发者都应该掌握的基础。第二部分介绍了CSS、XSLT和XPath等知识,通过使用CSS或XSLT,可直接将XML文档当成视图技术。第三部分介绍了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4i和JDOM都以结构化的方式来创建、解析XML文档,从而可以将XML文档作为数据传输工具,而XQuery则是一种新规范,通过X Query可以查询XML文档中的数据,就像使用SQL查询关系数据库的数据一样。第四部分介绍了Web Services和CXF,其中CXF是Java领域的主流Web Services框架,简单易用。第五部分则提供了两个综合性案例:基于XML的电子公告系统和电子拍卖系统,让读者将前面所学应用到实际项目中。尤其是电子拍卖系统,它是一个包含5个表,表之间具有复杂关联映射的系统,该案例采用目前最流行、最规范的轻量级Java EE架构,将整个应用分为领域对象层、DAO层和业务逻辑层,然后用CXF将业务逻辑组件包装成Web Services,从而可以将现有的Java EE项目与其他平台的、其他语言的异构项目进行整合,具有极好的指导价值和借鉴意义。 《疯狂XML讲义》大部分章节后都提供了相应的编程习题,供开发者巩固所学,将理论融入实际开发之用。关于这些编程习题的解题思路和参考答案可登录http://www.crazyit.org获取。 《疯狂XML讲义》是疯狂Java体系丛书之一,学习《疯狂XML讲义》无须任何XMI,基础,但DOM、SAX、dora4i、JDOM解析部分包含了大量Java编程,因此建议先认真阅读疯狂Java体系的《疯狂Java讲义》一书。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧