如下xml文件的xml schema 怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如下xml文件的xml schema 怎么写?相关的知识,希望对你有一定的参考价值。

11010211好像选xs:sequence,xs:all都不行谢谢
<xxyy>
<aa>11</aa>
<bb>01</bb>
<bb>02</bb>
<aa>11</aa>
</xxyy>

没有把这段贴上,我自己尝试写了一个如下的,但是是错的:

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+/试试;
参考技术A <?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="xxyy">
<xs:complexType>
<xs:sequence>
<xs:element ref="aa"/>
<xs:element ref="bb" />
<xs:element ref="bb" />
<xs:element ref="aa"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="bb" type="xs:byte"/>
<xs:element name="aa" type="xs:byte"/>
</xs:schema>

就这么写呗。其实写法很多,比如说中间那两句bb的,可以写成一句:
<xs:element ref="bb" maxOccurs="unbounded">
还可以用xs:choice maxOccurs="unbounded" 代替sequence,里面写aa和bb。追问

谢谢你,不过我第一没有说的特别准确

11
01
02

01
02
11

aa的数目最多只有一个,bb的数目不一定,aa和bb的顺序不一定。谢谢啊

本回答被提问者采纳

Schema约束

13 写一个DTD约束文件
14 Schema 约束
14.1 什么是Schema 约束
Schema是新的XML文档约束;
Schema要比DTD强大很多,是DTD替代者;
Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml。
Schema功能更强大,数据类型更完善
Schema支持名称空间
14.2 与DTD —样,要求可以通过schema约束文档编写xml文档。常见框架使用schema的有:Spring

14.3 根据约束写一个
15 命名空间
15.1 什么是命名空间
如果一个XML文档中使用多个Schema文件,而这些Schema文件中定义了相同名称的元素时就 会出现名字冲突。这就像一个Java文件中使用了 import java.util.*和import java.sql.*时,在使用Date 类时,那么就不明确Date是哪个包下的Date 了。
总之名称空间就是用来处理元素和属性的名称冲突问题,与java中的包是同一用途。如果每个 元素和属性都有自己的名称空间,那么就不会出现名字冲突问题,就像是每个类都有自己所在的包 一样,那么类名就不会出现冲突。
16 XML解析
16.1概念
当将数据存储在XML后,我们就希望通过程序获得XML的内容。如果我们使用java基础所学习的I0知识是可以完成的,不过你需要非常繁琐的操作才可以完成,且开发中会遇到不同问题(只 读、读写)。人们为不同问题提供不同的解析方式,并提交对应的解析器,方便开发人员操作XML。
16.2 解析方式
D0M:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。
a) 优点:元素与元素之间保留结构关系,故可以进行增删改查操作。
b) 缺点:XML文档过大,可能出现内存溢出显现。
SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动 的 方式进行具体解析,每执行一行,都将触发对应的事件。(了解)
a) 优点:处理速度快,可以处理大文件
b) 缺点:只能读,逐行后将释放资源。
PULL: Android内置的XML解析方式,类似SAX。
16.3 解析器
就是根据不同的解析方式提供的具体实现。有的解析器操作过于繁琐,为了方便开发 人员,有提供易于操作的解析开发包
16.4 常见的解析开发包:
JAXP: sun公司提供支持DOM和SAX开发包
JDom: dom4j 兄弟
jsoup: 一种处理HTML特定解析幵发包
dom4j:比较常用的解析幵发包,hibernate底层采用。
16.5 dom4j使用
导入jar包
dom4j必须使用核心类SaxReader加载xml文档获得Document,通过Document对象获得文档
的根元素,然后就可以操作了。
常用API如下:
1 SaxReader 对象
a) read(...)加载执行xml文档
2 Document 对象
a) getRootElement()获得根元素
3 Element 对象
elements(...)获得指定名称的所有子元素。可以不指定名称
element(...)获得指定名称第一个子元素。可以不指定名称
getName()获得当前元素的元素名
attributeValue(...)获得指定属性名的属性值
elementText(...)获得指定名称子元素的文本值
getText()获得当前元素的文本内容

 

 

 

 

 


 

13 写一个DTD约束文件
14 Schema 约束
14.1 什么是Schema 约束
Schema是新的XML文档约束;
Schema要比DTD强大很多,是DTD替代者;
Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml。
Schema功能更强大,数据类型更完善
Schema支持名称空间
14.2 与DTD —样,要求可以通过schema约束文档编写xml文档。常见框架使用schema的有:Spring

14.3 根据约束写一个
15 命名空间
15.1 什么是命名空间
如果一个XML文档中使用多个Schema文件,而这些Schema文件中定义了相同名称的元素时就 会出现名字冲突。这就像一个Java文件中使用了 import java.util.*和import java.sql.*时,在使用Date 类时,那么就不明确Date是哪个包下的Date 了。
总之名称空间就是用来处理元素和属性的名称冲突问题,与java中的包是同一用途。如果每个 元素和属性都有自己的名称空间,那么就不会出现名字冲突问题,就像是每个类都有自己所在的包 一样,那么类名就不会出现冲突。
16 XML解析
16.1概念
当将数据存储在XML后,我们就希望通过程序获得XML的内容。如果我们使用java基础所学习的I0知识是可以完成的,不过你需要非常繁琐的操作才可以完成,且开发中会遇到不同问题(只 读、读写)。人们为不同问题提供不同的解析方式,并提交对应的解析器,方便开发人员操作XML。
16.2 解析方式
D0M:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。
a) 优点:元素与元素之间保留结构关系,故可以进行增删改查操作。
b) 缺点:XML文档过大,可能出现内存溢出显现。
SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动 的 方式进行具体解析,每执行一行,都将触发对应的事件。(了解)
a) 优点:处理速度快,可以处理大文件
b) 缺点:只能读,逐行后将释放资源。
PULL: Android内置的XML解析方式,类似SAX。
16.3 解析器
就是根据不同的解析方式提供的具体实现。有的解析器操作过于繁琐,为了方便开发 人员,有提供易于操作的解析开发包
16.4 常见的解析开发包:
JAXP: sun公司提供支持DOM和SAX开发包
JDom: dom4j 兄弟
jsoup: 一种处理HTML特定解析幵发包
dom4j:比较常用的解析幵发包,hibernate底层采用。
16.5 dom4j使用
导入jar包
dom4j必须使用核心类SaxReader加载xml文档获得Document,通过Document对象获得文档
的根元素,然后就可以操作了。
常用API如下:
1 SaxReader 对象
a) read(...)加载执行xml文档
2 Document 对象
a) getRootElement()获得根元素
3 Element 对象
elements(...)获得指定名称的所有子元素。可以不指定名称
element(...)获得指定名称第一个子元素。可以不指定名称
getName()获得当前元素的元素名
attributeValue(...)获得指定属性名的属性值
elementText(...)获得指定名称子元素的文本值
getText()获得当前元素的文本内容

 

 

 

 

 


 

以上是关于如下xml文件的xml schema 怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

如何在xml中生成schema约束

根据xml文件写XML Schema

xml约束技术---schema

Mycat核心配置

xml的schema的错误

在xml中xsd:schema和xs:schema是一个意思吗