layout: post
#标题配置
title: schema语法属性以及与dtd的区别
#时间配置
date: 2021-07-31 14:10:00 +0800
#目录配置
categories: schema
#标签配置
tag: 学习笔记
- content
{:toc}
schema
schema和dtd的区别
- schema约束文件也是一个xml文件,符合xml的语法,这个文件的后缀名.xsd
- 一个xml中可以引用多个schema约束文件,多个schema使用名称空间区分(名称空间类似于java包名)
- dtd里面元素类型的取值比较单一常见的是PCDATA类型,但是在schema里面可以支持很多个数据类型
- schema语法更加地复杂
其他文件约束schema文件,schema约束xml文件
Schema文件用来约束一个xml文件,同时也被别的文件约束着
引入
例:
<?xml version="1.0" encoding="UTF-8" ?>
<persons
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://wzkweb.azurewebsites.net/UOLabNUC2020/login.html" xsi:schemaLocation="https://wzkweb.azurewebsites.net/UOLabNUC2020/login.html person.xsd"
>
<person>
<name>张三</name>
<age>23</age>
</person>
</persons>
语法
<?xml version="1.0" encoding="UTF-8" ?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://wzkweb.azurewebsites.net/UOLabNUC2020/login.html"
elementFormDefault="qualified"
>
<!--定义persons复杂元素-->
<element name="persons">
<complexType>
<sequence>
<!--定义person复杂元素-->
<element name="person">
<complexType>
<sequence>
<!--定义name和age简单元素-->
<element name="name" type="string"></element>
<element name="age" type="string"></element>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
定义属性
required(必须的)
optional(可选的)
</sequence>
<attribute name="id" type="string" use="required"></attribute>
</complexType>
写在和之间