Schema 约束 API 查看(二)| 学习笔记

简介: 快速学习 Schema 约束 API 查看。

开发者学堂课程【XML入门 :Schema 约束 API 查看(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/37/detail/858


Schema 约束 API 查看


四、对 xmlSchema 的引用

<?xml version="1.0" encoding="utf-8"?>

<note

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://www.itcast.cn/20140213"

xsi:schemaLocation="http://www.itcast.cn/20140213 node.xsd">

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

</note>

 

五、使用名称空间引入 Schema

http://www.w3.org/2001/XML Schema就是一个引入空间,http://www.itcast.cn/20151111就是引入地址,它们只能通过 xmlns 来引入,但xmlns 属性都一样,所以要加个别名,别名名称可以随便取,而 xml 就叫名称空间。类似用 java 里面的包名,在很多包下都叫 Document,通过前面的包名来进行区分。再写一个包叫 cn.itcast.test1,在 cn.itcast.test1 里还可以起 Testjaxp.java 名称的 java 文件,但是在一个包里写 Testjaxp.java 是不可以的,包中不可以有两个相同的类名。

 

六、复杂的 Schema 约束

1.来到 day06 里的资料,资料里有一个复杂的 Schema 案例,把里面的东西复制到 src。把其他的关掉,来到 company.xml,里面引入了两个 Schema,一个是 company 另一个是 department,加了一个别名区分这就叫名称空间,而这里面引入了多个 Schema。

2.在 department.xsd 里约束了 name,这是一个部门名称。在 company.xsd 里company 是一个复杂元素,employee 也是一个复杂元素,在 employee 里也有两个元素,第一个是 any 任意的,第二个是 name 员工名称。

如果在 company.xml 写个部门的名称,约束要用 department.xsd 里的 name。所以在 company.xml 里写 <name>aaa</name>,这么写是错误的,name里用的是部门里面约束的 name。要在name里写上dept:<dept :name>aaa</dept:name>

3.在 department.xsd 改个类型,把 string 改为 int,再来到 company.xml 里 面会报错,因为是 int 如果把 aaa 改为 100就不会出错。这是复杂元素的一个使用,里面使用多个 Schema,通过一个别名或者名称空间,若想使用 Schema 里面的约束,通过别名加上里面约束的元素,可以直接来使用。

4.在一个 src 中可以使用多个 Schema,加个别名来区分,名称随意取都可以但是不能相同。这里面有个约束叫 company 公司,在 company.xsd 的根节点是 company,它是复杂元素。往下看 employee 也是复杂元素它里面有两个元素 any 和 name。回到 company.xml,首先第一个叫 company,第二个叫 employee,在 employee 下可以有两个元素,第一个是任意的,第二个是 name。

现在约束部门的名称,在 department.xsd 里约束,在 department.xml 里写<dept:name>aaa</dept:name>。在company.xsd里有一个elementFormDefault 里面有一个 qualified 质量良好的。company 起个名字 aa,company 前面也加上 aa:,这样会报错,所以当你设成是质量良好时,根节点里面写了 aa,下面的全部都要写 aa。

 

七、总结

1.复杂元素指示器

<sequence>:表示元素的出现的顺序

<all>:元素只能出现一次

<choice>:元素只能出现其中的一个

maxOccurs="unbounded" 表示元素的出现的次数

<any></any>:表示任意元素

2.可以约束属性

写在复杂元素里面

写在 </complexType>之前

<attribute name="id1"type="int"use="required"></attribute>

name: 属性名称

type:属性类型 int stirng

use:属性是否必须出现 required

3.复杂的 schema 约束

<company xmlns="http://www.example.org/company"

xmlns:dept="http://www.example.org/department

xmlns:xsi="http://www.w3.orq/2001/XMLSchema-instancen

xsi:schemaLocation="http://www.example.org/company company.xsd http://www.example.org/department department.xsd">

4.引用多个 schema 文件,可以给每个起一个别名

<employee age="30">

<!--部门名称 -->

<dept:name>100</dept:name>

想要引入部门的文件约束里面的 name,使用部门别名 dept:元素的名称。这样可以引入多个 schema。

<!--员工名称 -->

<name>王晓晓</name>

</employee>

相关文章
|
14天前
|
人工智能 监控 安全
F5社区学习笔记:API和AI如何改变应用安全?
F5社区学习笔记:API和AI如何改变应用安全?
24 1
|
9天前
|
jenkins API 持续交付
jenkins学习笔记之十五:SonarSQube API使用
jenkins学习笔记之十五:SonarSQube API使用
|
4月前
|
XML API 数据格式
【Qt 学习笔记】QWidget的enable属性 | API的介绍
【Qt 学习笔记】QWidget的enable属性 | API的介绍
111 0
|
10月前
|
SQL 数据库
org.flywaydb.core.api.FlywayException: Schema “xxx” contains a failed migration to version 156!
org.flywaydb.core.api.FlywayException: Schema “xxx” contains a failed migration to version 156!
167 0
|
前端开发 API
前端学习笔记202305学习笔记第三十天-什么是mvc-c层api 前后端联动1
前端学习笔记202305学习笔记第三十天-什么是mvc-c层api 前后端联动1
66 0
|
前端开发 API
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 前后端联动3
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 前后端联动3
48 0
|
前端开发 API
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 和mvc总结3
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 和mvc总结3
43 0
|
前端开发 API
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 和mvc总结4
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 和mvc总结
51 0
|
前端开发 API
前端学习笔记202305学习笔记第三十天-什么是mvc-c层api 前后端联动3
前端学习笔记202305学习笔记第三十天-什么是mvc-c层api 前后端联动3
59 0
|
前端开发 API
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 和mvc总结2
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 和mvc总结2
46 0