xmlschema(如何解析XML schema)

:暂无数据 2026-06-06 07:30:01 :0

xmlschema(如何解析XML schema)

本篇文章给大家谈谈xmlschema,以及如何解析XML schema对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

如何解析XML schema

schema是控制XML文件的元素名称、类型、顺序的,为什么还要解析它呢?
使用XML Spy,它能马上生成满足schema条件的XML示例文件来。
如果硬要解析也不是不可以,但这不是Schema存在的目的哟。

XML和schema

你这个schema很怪,只能写一个人的记录,可以是以下三个中的任何一个,但不能组合到一起(注意元素的顺序不能变):
----------第1种,以contact为根元素----------------------------------------------------
《?xml version=“1.0“ encoding=“GB2312“?》
《Contact xsi:noNamespaceSchemaLocation=“ContactSchema.xsd“ xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“》
《name》jonh《/name》
《phonenumber》0998876554《/phonenumber》
《number》37《/number》
《street》champ sleey《/street》
《zipcode》80907《/zipcode》
《city》hkonima《/city》
《country》japan《/country》
《surname》toms《/surname》
《/Contact》
--------第2种,以person为根元素-------------------------------------------------------
代码同上,只不过把Contact改为person
--------第3种,以company为根元素-----------------------------------------------------
代码相似,改了根元素名,去掉surname
《?xml version=“1.0“ encoding=“GB2312“?》
《company xsi:noNamespaceSchemaLocation=“ContactSchema.xsd“ xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance“》
《name》jonh《/name》
《phonenumber》0998876554《/phonenumber》
《number》37《/number》
《street》champ sleey《/street》
《zipcode》80907《/zipcode》
《city》hkonima《/city》
《country》japan《/country》
《/company》

XML中schema是什么意思

XML Schema定义(XML Schema Definition,XSD)是一套W3C标准,用于基于XML的称为XML Schema的类型系统。用于定义的语言是一种称为XML模式定义语言(XML Schema Definition Language)的XML语法。Web 服务使用XML作为表示消息和数据的底层格式。因此,XSD成为Web服务类型系统的自然选择。

XML文档必须有严格的形式规范,以适应各种具体的应用。首先,XML文档必须符合XML语法限制,术语称为“well-formed XML”;其次,为了使XML表示的数据有一定含义,还需要根据应用为其定义语义上的限制,术语称为“validating XML”。“well-formed XML”是容易验证的,而“validating XML”还需要另一个关联的文档来定义XML标记规范。以前使用的是DTD文档,现在使用的是Schema。

比如一个用来表示书对象的XML文档如下:

金庸

相关的DTD文档内容应为:

《!ELEMENT title(#PCDATA)》

如果使用Schema,文档内容则为:

>

《element name=’author’ type=’string’/>

《/complexType》

Schema文档相对于DTD文档有明显的好处,首先Schema文档本身就是“validating XML”,而DTD文档甚至不是“well-formed XML”,因此,可以使用相同的工具来出来Schema文档和XML文档,而处理DTD必须有专门的工具;Schema相对DTD,还有格式简单、容易理解、表达能力更强等优点,因此代替DTD已是大势所趋。

关于XML Schema的详细内容可参考:http://www.w3.org/TR/xmlschema-1/

xml的schema的错误

你的 xsd:element节点(哪怕是一个)在 xsd:complexType 下也不能直接出现。

需要作为《xsd:sequence》或者《xsd:choice》中的一个子节点出现在复杂类型元素(xsd:complexType)中。

***你的Schema中的错误***:

1. 《xsd:element name=“class“》直接作为《xsd:complexType》的子节点了。

2. 《xsd:element name=“student“》同样也是直接作为《xsd:complexType》的子节点了。

3.你希望class中可以出现多个student的问题,那么你需要将你对应的element节点加入 maxOccurs=“unbounded“ 的属性及其值。

例如:
《xsd:element name=“student“》
改为:
《xsd:element name=“student“ maxOccurs=“unbounded“》

(按照语境来说,grade下同样可以有多个class)

4.在复杂类型中《xsd:attribute》节点放在最后。

最终的正确Schema(*对你的稍加修改)
《?xml version=“1.0“?》
《xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema“》
《xsd:element name=“grade“》
《xsd:complexType》
《xsd:sequence》
《xsd:element name=“class“ maxOccurs=“unbounded“》
《xsd:complexType》
《xsd:sequence》
《xsd:element name=“student“ maxOccurs=“unbounded“》
《xsd:complexType》
《xsd:sequence》
《xsd:element name=“number“ type=“xsd:string“/》
《xsd:element name=“name“ type=“xsd:string“/》
《xsd:element name=“email“ type=“xsd:string“/》
《xsd:element name=“qq“ type=“xsd:string“/》
《xsd:element name=“address“》
《xsd:complexType》
《xsd:sequence》
《xsd:element name=“province“ type=“xsd:string“/》
《xsd:element name=“city“ type=“xsd:string“/》
《xsd:element name=“street“ type=“xsd:string“/》
《xsd:element name=“mailcode“ type=“xsd:string“/》
《/xsd:sequence》
《/xsd:complexType》
《/xsd:element》
《/xsd:sequence》
《/xsd:complexType》
《/xsd:element》
《/xsd:sequence》
《xsd:attribute name=“number“ type=“xsd:string“/》
《/xsd:complexType》
《/xsd:element》
《/xsd:sequence》
《xsd:attribute name=“year“ type=“xsd:string“/》
《/xsd:complexType》
《/xsd:element》
《/xsd:schema》

XML Schema可以定义四种复杂类型,分别是

1. 定义只包含子元素的复杂类型
《xs:element name=“person“》
《xs:complexType》
《xs:sequence》
《xs:element name=“firstname“ type=“xs:string“/》
《xs:element name=“lastname“ type=“xs:string“/》
《/xs:sequence》
《/xs:complexType》
《/xs:element》
2. 定义只包含属性的复杂类型
《xs:element name=“product“ type=“prodtype“/》
《xs:complexType name=“prodtype“》
《xs:attribute name=“prodid“ type=“xs:positiveInteger“/》
《/xs:complexType》
3. 定义只包含内容的复杂类型
《xs:element name=“shoesize“ type=“shoetype“/》
《xs:complexType name=“shoetype“》
《xs:simpleContent》
《xs:extension base=“xs:integer“》
《xs:attribute name=“country“ type=“xs:string“ /》
《/xs:extension》
《/xs:simpleContent》
《/xs:complexType》
4. 定义包含内容和子元素混合的复杂类型
《xs:element name=“letter“》
《xs:complexType mixed=“true“》
《xs:sequence》
《xs:element name=“name“ type=“xs:string“/》
《xs:element name=“orderid“ type=“xs:positiveInteger“/》
《xs:element name=“shipdate“ type=“xs:date“/》
《/xs:sequence》
《/xs:complexType》
《/xs:element》
以上定义对应的Xml
《letter》
Dear Mr.《name》John Smith《/name》.
Your order 《orderid》1032《/orderid》
will be shipped on 《shipdate》2001-07-13《/shipdate》.
《/letter》

如何解析XML schema的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何解析XML schema、如何解析XML schema的信息别忘了在本站进行查找哦。

xmlschema(如何解析XML schema)

本文编辑:admin

更多文章:


promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

mysql 命令(MySQL的基本命令)

mysql 命令(MySQL的基本命令)

大家好,如果您还对mysql 命令不太了解,没有关系,今天就由本站为大家分享mysql 命令的知识,包括MySQL的基本命令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 03:00

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

手机云备份是什么意思?手机上的云备份有什么用 怎么用呢

各位老铁们,大家好,今天由我来为大家分享云备份,以及手机云备份是什么意思的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月11日 02:40

java遍历map的key(java Map 怎么遍历)

java遍历map的key(java Map 怎么遍历)

大家好,java遍历map的key相信很多的网友都不是很明白,包括java Map 怎么遍历也是一样,不过没有关系,接下来就来为大家分享关于java遍历map的key和java Map 怎么遍历的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月11日 02:20

微信xlsx文件怎么打开(苹果手机微信打开excel)

微信xlsx文件怎么打开(苹果手机微信打开excel)

大家好,关于微信xlsx文件怎么打开很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于苹果手机微信打开excel的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 01:10

reduce用法和短语(减少的英文短语有哪些)

reduce用法和短语(减少的英文短语有哪些)

其实reduce用法和短语的问题并不复杂,但是又很多的朋友都不太了解减少的英文短语有哪些,因此呢,今天小编就来为大家分享reduce用法和短语的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 00:40

最近更新

promote翻译(英语翻译倡导怎么说)
2026-10-11 06:30:03 浏览:0
热门文章

标签列表