XML语言的学习记录5- XSD

2024-03-20 16:36
文章标签 语言 xml 学习 记录 xsd

本文主要是介绍XML语言的学习记录5- XSD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

XSD(XML Schema Definition),定义 XML 文档的合法构建模块,分为简易元素(仅包含文本的元素,不会包含任何其他的元素或属性)和复合元素(包含其他元素及/或属性的 XML 元素)。

1. 内建的数据类型:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

2.  示例:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.XXX.com/XMLSchema"
targetNamespace="http://www.YYY.com"
xmlns="http://www.ZZZ.com"
xmlns:xsi="http://www.XXX.com/XMLSchema-instance"
elementFormDefault="qualified">
<xs:element name="note"><xs:complexType><xs:sequence><xs:element name="to" type="xs:string"/><xs:element name="age" type="xs:integer"/><xs:element name="sex" type="xs:boolean"/><xs:element name="date" type="xs:date"/></xs:sequence></xs:complexType>
</xs:element></xs:schema>

  “xs:”  XSD命名控件前缀;

   xmlns:xs="url"  指定 XML Schema 的命名空间,前缀为xs;

   targetNamespace="url":定义了XSD的目标命名空间,即定义的元素和类型将属于这个命名空间;

    xmlns="url":这个属性定义了默认命名空间,即在没有指定命名空间的情况下,元素和属性将属于这个命名空间;

  xmlns:xsi="/XMLSchema-instance":通常用于指定 XML 实例文档中的元数据信息;

    elementFormDefault="qualified":这个属性定义了元素的默认命名空间限定方式,qualified 表示元素必须在命名空间中被限定;

使用方法: <xs: xsd元素></xs: xsd元素>

xsd元素:

  1. <xs:schema>:定义整个 XML Schema 文档的根元素
  2. <xs:element>:定义 XML 文档中的元素
  3. <xs:attribute>:定义元素的属性
  4. <xs:sequence>:指定元素子元素的顺序,例如:
    1. <xs:element name="person"><xs:complexType><xs:sequence><xs:element name="name" type="xs:string"/><xs:element name="age" type="xs:integer"/><xs:element name="address" type="xs:string"/></xs:sequence></xs:complexType>
      </xs:element>
  5. <xs:choice>:指定可选的元素,如:
    1. <!-- xs:choice> 包含了三个 <xs:element> 元素,分别定义了 "shape" 元素可以选择的子元素为 "circle"、"rectangle" 和 "triangle"。这表示在 XML 实例中,"shape" 元素可以包含其中的一个子元素,而不是全部出现 -->
      <xs:element name="shape"><xs:complexType><xs:choice><xs:element name="circle" type="xs:string"/><xs:element name="rectangle"><xs:complexType><xs:sequence><xs:element name="width" type="xs:integer"/><xs:element name="height" type="xs:integer"/></xs:sequence></xs:complexType></xs:element><xs:element name="triangle"><xs:complexType><xs:sequence><xs:element name="side1" type="xs:integer"/><xs:element name="side2" type="xs:integer"/><xs:element name="side3" type="xs:integer"/></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType>
      </xs:element>
      
  6. <xs:all>:指定包含所有指定子元素的元素
  7. <xs:group>:定义元素组合
  8. <xs:attributeGroup>:定义属性组合
  9. <xs:simpleType>:定义简单类型的元素结构
  10. <xs:simpleContent>:定义包含对 简单类型元素的扩展或限制且不包含任何元素,通常与 <xs:extension> 或 <xs:restriction> 结合使用,以扩展或限制现有的简单类型,例如:
    1. <xs:element name="exampleElement"><xs:simpleType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="attr1" type="xs:int"/></xs:extension></xs:simpleContent></xs:simpleType>
      </xs:element>
  11. <xs:restriction>:定义对 simpleType、simpleContent 或 complexContent 的约束
  12. <xs:complexType>:定义复杂类型的元素结构
  13. <xs:complexContent>:定义对复杂类型(包含混合内容或仅包含元素)的扩展或限制,如:
    1. <xs:element name="person"><xs:complexType><xs:complexContent><xs:extension base="xs:string"><xs:attribute name="id" type="xs:integer"/></xs:extension></xs:complexContent></xs:complexType>
      </xs:element>
  14. <xs:redefine>:重新定义从外部架构文件中获取的简单和复杂类型、组和属性组
  15. <xs:extension>:扩展已有的 simpleType 或 complexType 元素

这篇关于XML语言的学习记录5- XSD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/830071

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程