×

xmlschema

xmlschema(所有xml schema文档都必须使用什么元素作为其根元素)

admin admin 发表于2023-03-25 05:19:37 浏览34 评论0

抢沙发发表评论

本文目录

所有xml schema文档都必须使用什么元素作为其根元素


1 定义头和根元素
部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。
DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。
所有部署描述符文件的顶层(根)元素为web-app。请注意,XML元素不像HTML,他们是大小写敏感的。因此,web-App和WEB-APP都是不合法的,web-app必须用小写。
2 部署描述符文件内的元素次序
XML 元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。例如,XML头必须是文件中的第一项,DOCTYPE声明必须是第二项,而web- app元素必须是第三项。在web-app元素内,元素的次序也很重要。服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执行含有次序不正确的元素的Web应用。这表示使用非标准元素次序的web.xml文件是不可移植的。

如下xml文件的xml schema 怎么写


1、开MyEclipse,从菜单栏找到“Window”---》“Preferences(首选项)”;
2、在左侧导航菜单栏找到“MyEclipse”---》“Files and Editors”----》“XML”---》“XML
Catalog”;
3、在右边的界面中,选择“User Specified Entries”,点击右边的“Add...”;
4、在弹出的“Add XML Catalog Element”对话框中点击“File System...”,为Location输入框添加XSD文件所在路径;
5、.xsd文件添加后,在下面的“Key:”右边的文本框会自动添加一个URI,如Spring的为:
,如果没有自动添加,使用别的文本编辑器打开此.xsd文件,找到相应的《xsd:schema xmlns...》名称空间声明;
6、“Key Type:”右边的下拉框中有“Namespace Name”与“Schema Location”两个选项,
将Key Type置为Schema Location;如果是DTD,那里将会有三个类型:Public ID,System ID,URI;
7、在Key:右边的文本框中的URI后面加上/,再加上此xsd的名字,
如spring-beans-2.5.xsd的key为:
8、点击“OK”保存后,即可看到“User Specified Entries”已有了所增加的xsd;
9、重启MyEclipse即可,注意如果提示不出来,并在状态栏的左下出现“Content Assist not available at the current location”,请在光标位置键入一个空格再使用Alt+/试试;

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》

如何定义XMLSchema文件


您好,很高兴能帮助您,
定义元素就是定义元素的名字和内容模型。在 XML Schema 中,元素的内容模型由其类型定义,因此 XML 文档中实例元素的值必须符合模式中定义的类型。
简单类型
XML Schema 规范定义了一些值的简单类型,如 表 2:“预定义的值简单类型”所示。
类型包括简单类型和复杂类型。简单类型的值不能包含元素或属性。复杂类型可以产生在其他元素中嵌套元素的效果,或者为元素增加属性。(到目前为止本文中的例子都是用户定义的简单类型,比如 ProductCode )。XML Schema 规范也包括预定义的简单类型(请参阅侧栏 简单类型)。 派生的简单类型约束了基类型的值。比如,派生简单类型 ProductCode 的值是基类型 string 值的子集。
简单的、非嵌套的元素是简单类型
不含属性或其他元素的元素可以定义为简单类型,无论是预定义的简单类型还是用户定义的简单类型,如string 、 integer 、 decimal 、 time 、 ProductCode 等等。
你的采纳是我前进的动力,还有不懂的地方,请你继续“追问”!
如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助!

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


《?xml version=“1.0“ encoding=“UTF-8“ standalone=“no“?》
《xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema“ elementFormDefault=“qualified“》
《xs:import namespace=“http://www.w3.org/XML/1998/namespace“/》
《xs:element name=“产品目录“》
《xs:complexType》
《xs:sequence》
《xs:element ref=“硬件“ minOccurs=“0“ maxOccurs=“unbounded“/》
《xs:element ref=“软件“ minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:sequence》
《/xs:complexType》
《/xs:element》
《xs:element name=“硬件“》
《xs:complexType》
《xs:sequence》
《xs:element ref=“品牌“/》
《xs:element ref=“型号“/》
《xs:element ref=“CPU“/》
《xs:element ref=“内存“/》
《xs:element ref=“硬盘“/》
《xs:element ref=“价格“/》
《/xs:sequence》
《xs:attribute name=“类型“ use=“required“》
《xs:simpleType》
《xs:restriction base=“xs:NMTOKEN“》
《xs:enumeration value=“笔记本电脑“/》
《xs:enumeration value=“台式机“/》
《/xs:restriction》
《/xs:simpleType》
《/xs:attribute》
《/xs:complexType》
《/xs:element》
《xs:element name=“软件“》
《xs:complexType》
《xs:sequence》
《xs:element ref=“名称“/》
《xs:element ref=“价格“/》
《xs:element ref=“简介“/》
《/xs:sequence》
《xs:attribute name=“类型“ type=“xs:string“ use=“required“/》
《/xs:complexType》
《/xs:element》
《xs:element name=“品牌“》
《xs:complexType mixed=“true“》
《xs:choice minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:complexType》
《/xs:element》
《xs:element name=“型号“》
《xs:complexType mixed=“true“》
《xs:choice minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:complexType》
《/xs:element》
《xs:element name=“CPU“》
《xs:complexType mixed=“true“》
《xs:choice minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:complexType》
《/xs:element》
《xs:element name=“内存“》
《xs:complexType mixed=“true“》
《xs:choice minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:complexType》
《/xs:element》
《xs:element name=“硬盘“》
《xs:complexType mixed=“true“》
《xs:choice minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:complexType》
《/xs:element》
《xs:element name=“名称“》
《xs:complexType mixed=“true“》
《xs:choice minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:complexType》
《/xs:element》
《xs:element name=“简介“》
《xs:complexType mixed=“true“》
《xs:choice minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:complexType》
《/xs:element》
《xs:element name=“价格“》
《xs:complexType mixed=“true“》
《xs:choice minOccurs=“0“ maxOccurs=“unbounded“/》
《/xs:complexType》
《/xs:element》
《/xs:schema》

XML中的SCHEMA使用的注意点


xml的schema是对xml文档结构的规范.
xml schema和面向对象的结合可能要考虑使用rdf或owl等更高级的本体描述语言,这样才能够创建类和对象.
如果一定要说面向对象概念在schema中的体现,就是在schema可以定义每个对象的属性和字段结构,但是要表现更高级的如继承关系则可能要使用rdf或owl等更高级的本体描述语言。

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


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》