最近同事在做一个webservice 接口的调用,我比较感兴趣,所以就找时间学习了一下。在此写下我学习的全过程,算是记个笔记吧!如有不足或者错误之处,欢迎指摘。

因为大部分的webservice是通过发送xml报文,来实现request的发送给和response的接收。

那么基本所有的xml都是由xsd或者dtd文件来约束标签的。

那么我们第一节的内容就是学习一个xsd是如何通过schema来约束xml文件的。

首先新建一个java project;

然后在src下新建一个book.xsd文件。

<?xml version="1.0" encoding="UTF-8"?><schema xmlns="http://www.w3.org/2001/XMLSchema" targetNameSpace="zhangsan.com"elementFormDefault="qualified"><element name="书架"><complexType><sequence maxOccurs="unbounded"><element name="书"><complexType><sequence><element name="书名" type="string"></element><element name="作者" type="string"></element><element name="售价" type="string"></element></sequence></complexType></element></sequence></complexType></element>
</schema>

(1)所有的标签和属性都由schema文件来定义; 
(2)所有的schema文件都有一个id,叫它namespace; 
(3)namespace由谁来约束指定呢?xml的namespce为约束他的xsd文件的targetNameSpace; 
(4)如何引入一个schema约束? 
    属性:xmlns 
(5)elementFormDefault="qualified" 
    是指标签的约束,默认约束根标签,那么除了根标签的其他标签就白写了。
    所以让这个属性值为qualified,这样就可以约束所有的标签了。
(6)如果引入的別名不是W3C组织定义的,必须指定schema文件的位置;
(7)schema文件的位置由什么属性来指定
属性:schemaLocation
属性值:namespace path(注意这里的path是指相对位置就可以,且namespace 和path之间有一个空格)
(8)如果引入多个约束,那么就分不清哪个约束对应哪个约束位置以及对应哪个约束标签了。所以只能取别名。例如:

<?xml version="1.0" encoding="UTF-8"?>
<tt:书架 xmlns:tt="zhangsan.com"
xmlns:dd="http://www.w3.org/2001/XMLSchema"
tt:schemaLocation="zhangsan.com book.xsd"><tt:书><tt:书名>java从入门到精通</tt:书名><tt:作者>张三</tt:作者><tt:售价>88</tt:售价></tt:书><dd:element></dd:element></tt:书架>

引入了两个约束文件,那么我给取别名为tt和dd,相应的标签也应该对应在前面加一个别名即可

webservice 教程学习系列(一)——schema约束相关推荐

  1. webservice 教程学习系列(七)——编写天气预报和手机号码归属地的webservice

    1.编写天气预报的webservice 首先我们在http://www.webxml.com.cn/zh_cn/index.aspx里面找到天气预报的url 然后找到获取地区天气的接口方法: 看到方法 ...

  2. opencv-python教程学习系列2-读取/显示/保存图像

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的读取.显示以及保存,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: ...

  3. opencv-python教程学习系列13-图像平滑

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像平滑,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 系统: ...

  4. python 几何教学_opencv-python教程学习系列11-几何变换

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍几何变换,坚持学习,共同进步. 系统环境 系统:win7_x64; python版本:python ...

  5. python鼠标点击事件event_opencv-python教程学习系列5-处理鼠标事件

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv-python处理鼠标事件,坚持学习,共同进步. 系统环境 系统:win_x64; p ...

  6. opencv-python教程学习系列8-opencv图像算术运算

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的算术运算,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...

  7. 这可能是最好的RxJava 2.x 入门教程学习系列

    前言 在网上看到一个讲rxjava2系列的文章,然后跟着学了一遍,下面是我跟着学习的代码,后续还会附上一张rxjav2学习的思维导图. github官方链接 https://github.com/Re ...

  8. 计算机操作系统 电子科技大学MOOC教程学习系列(一)

    第一章 操作系统概述 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  9. Oracle学习系列1-7

    Oracle学习系列1 两个服务必须启动: OracleOraDb10g*TNListener 和 OracleService*** 使用sqlplusw先进行环境的设置 set linesize 3 ...

最新文章

  1. 第五节 面向对象相关特性
  2. 大话数据结构之算法 时间复杂度
  3. Android之解决APP奔溃重启导致Fragment白屏问题
  4. 洛谷P3270:成绩比较(容斥、组合数学)
  5. 很多文章是在下转载贴在此处,是为了自己以后遇到类似问题一时想不起来
  6. 系统权限管理设计 (转)
  7. 2万月薪招聘名校学生养猪:不好好学习,养猪都不要你
  8. Python:获取代码运行时间方法
  9. robot framework 使用四:分层设计和截图以及注意事项
  10. 润乾集算报表实现多数据集关联的示例
  11. 大数据行为分析包含哪些功能
  12. 解决源码安装手册找不到问题
  13. 关于fragstats内存问题
  14. 1.19.10.Flink SQL工程案例\Flink批式处理\自定义函数\Window窗口计算\将DataSet数据转成Table数据\将Table数据转成DataSet等
  15. cisco思科交换机恢复出厂设置清除配置的方法
  16. 找不到设备.将计算机连接,win10系统宽带连接显示不可使用找不到设备的修复方法...
  17. 数字2DPSK频带传输系统的设计(文内附完整代码)
  18. 使用pypcd读取pcd时ValueError: field ‘__0000‘ occurs more than once错误
  19. 北上广深飘的程序员的巨大bug
  20. 【模电实验】【超值1 + 1】【验证性实验——比例、求和运算电路实验】【验证性实验——各种非正弦信号发生器实验】

热门文章

  1. 电容笔好还是触控笔好?超实惠电容笔排行
  2. unicloud使用教程
  3. 好快, 1分钟写好下拉刷新,滚动加载自动分页列表
  4. 华为资深工程师为你深入讲解 Kubernetes及云原生应用
  5. python当中时间模块详解,包括time,timeit,datatime
  6. OPPO Reno5 Pro评测:给妹子拍视频就选它了
  7. 暴风影音能播放html视频吗,暴风影音播放器支持哪些视频格式
  8. (附源码)计算机毕业设计ssm 蛋糕店会员系统
  9. 晓月_【C#异步服务器】第一天 服务器源代码
  10. Python训练营-Task 4 Python数据分析:从0完成一个数据分析实战