之前一直想认真看下xsd,虽然逻辑一目了然,自己还没从头创建过。
浪费了光阴的我,终于排上日程,今天来看下这个牛鬼蛇神,记录一下。
1.xsd 是dtd的替代版。本质是xml文件。
定义了xml元素的属性规范,作用:校验一个xml文件的格式。
学习参考:https://blog.csdn.net/weixin_34259159/article/details/92144658
xsd 的基本元素介绍主要参考:
https://www.w3school.com.cn/schema/index.asp
读取classpath下的文件:https://blog.csdn.net/jiaobuchong/article/details/52422954
2.编写xsd
主要元素
1)<?xml version="1.0" ?>-声明是xml 1.0版本
2)<xs:schema>-是每一个xml schema的根元素。
包含属性:
---------命名空间--------------------
命名空间:可以是任意的字符串,必须唯一,一般是URI等具有特定标识的字符串。
xmlns:xs=显示shema中用到的元素和数据类型来自命名空间“http://www.w3.org/2001/XMLSchema”,
同时规定了来自命名空间“..w3..XMLSchema”的元素和数据类型应该使用前缀xs:。
(命名空间http://www.w3.org/2001/XMLSchema定义了xsd各种标准元素语义约束。)
--加上前缀:区分名称相同的元素,可写成 xmlns:前缀=命名空间。
targetNamespace:
指本文件city.xsd的命名空间定义为“www.city.com”==其他文件引用本文件时,使用的命名空间;
其他文件引用方式:xml文件引用时使用xsi:schemaLocation.
(xsi=xml schema instance,)
若不使用命名空间,则本文件被设置在无命名空间模式下;
其他文件引用时,使用noNameSpaceSchemalLocation.
xmlns:默认的命名空间.若文件中没有使用前缀,则使用 此默认的命名空间是“www.city.com”;
elementFormDefault="qualified"
-指任何XML文件引用此schema(city.xsd)中声明过的元素,必须被此命名空间targetNamespace限定。
xml中需要声明此命令空间。
--不需限定,设值=unqualified.
attributeFormDefault--是对属性的限定。逻辑与elementFormDefault一样。
3)元素类型:simpleType/complexType
simpleType--基本类型,除了string/decimal/integer/boolean/date/time 6种类型外可单独定义的基本类型。
complexType