XSD使用介绍

news/2024/10/30 13:25:49/

XSD使用介绍

  

一.XSD的schema 元素

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace = "http://www.eUdstand.com.cn/eUdstand-module" 
xmlns = "http://www.eUdstand.com.cn/eUdstand-module" 
elementFormDefault = "qualified"
>
</xs:schema>

1.1 xmlns:xs

xmlns:xs="http://www.w3.org/2001/XMLSchema"

  显示 schema 中用到的元素和数据类型来自命名空间 “http://www.w3.org/2001/XMLSchema”。同时它还规定了来自命名空间 “http://www.w3.org/2001/XMLSchema” 的元素和数据类型应该使用前缀 xs:

1.2 targetNamespace

targetNamespace = "http://www.eUdstand.com.cn/eUdstand-module" 

  显示被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: “http://www.eUdstand.com.cn/eUdstand-module”。

1.3 xmlns

targetNamespace = "http://www.eUdstand.com.cn/eUdstand-module" 

  指出默认的命名空间是 “http://www.eUdstand.com.cn/eUdstand-module”。

1.4 elementFormDefault

elementFormDefault = "qualified"

  指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。

二.XSD的简易元素(simpleType)

  定义简易元素的语法:<xs:element name=“xxx” type=“yyy”/>
  此处 xxx 指元素的名称,yyy 指元素的数据类型。XML Schema 拥有很多内建的数据类型。

  最常用的类型是:

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

  定义属性的语法是:<xs:attribute name=“xxx” type=“yyy”/>
在此处,xxx 指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。

   最常用的类型是:

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

  限定(restriction)用于为 XML 元素或者属性定义可接受的值。
  如下是对值的限定:

    <xs:attribute name = "load-on-startup" ><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="-100"></xs:minInclusive><xs:maxInclusive value="100"></xs:maxInclusive></xs:restriction></xs:simpleType></xs:attribute> 

三.XSD的复杂元素(complexType)

  复合元素包含了其他的元素及/或属性。
通过指示器,我们可以控制在文档中使用元素的方式。

  指示器
  有七种指示器:

    Order 指示器:Order 指示器用于定义元素的顺序。
      -All:指示器规定子元素可以按照任意顺序出现,且每个子元素必须只出现一次
      -Choice :指示器规定可出现某个子元素或者可出现另外一个子元素(非此即彼)
    Sequence (规定子元素必须按照特定的顺序出现)
    Occurrence 指示器: 指示器用于定义某个元素出现的频率
       - maxOccurs:指示器可规定某个元素能够出现的最大次数
       - minOccurs:指示器可规定某个元素能够出现的最小次数
    Group 指示器:暂不分析
       - Group name:暂不分析
       - attributeGroup name:暂不分析

 <xs:element name="eUdstand-module" type = "EudstandModuleType"></xs:element><xs:complexType name = "ModuleVersionType" ><xs:all><xs:element name = "module-name" type = "xs:string" minOccurs="1"maxOccurs="1"></xs:element><xs:element name = "module-title" type = "xs:string" minOccurs="1"maxOccurs="1"></xs:element><xs:element name = "module-version" type = "xs:string" minOccurs="1"maxOccurs="1"></xs:element></xs:all></xs:complexType><xs:complexType name = "EudstandModuleType"><xs:all><xs:element name = "module-config" type = "ModuleVersionType" minOccurs="1"maxOccurs="1"></xs:element></xs:all></xs:complexType><xs:attribute name = "load-on-startup" ><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="-100"></xs:minInclusive><xs:maxInclusive value="100"></xs:maxInclusive></xs:restriction></xs:simpleType></xs:attribute> 

四.XSD转xml和JAXBclass文件

  通过eclipse工具,右键xsd文件,选择generate …
在这里插入图片描述

   xsd 转 jaxb class文件 也可以通过jdk xjc命令

   包含xjc命令xsdToClass 文件 所在位置
在这里插入图片描述
   xsdToClass 文件内容:

xjc -encoding utf-8 -d src/main/java -p com.personal.eudstand.core.module.type src/main/resources/eUdstand-module.xsd

   -d 输出目录
   -p 生成的目录
   src/main/resources/eUdstand-module.xsd 表示xsd文件位置

五.xml的xmlns元素

   xmlns:全名是xml namespace,也即是为当前的这个xml指定命名空间。

   xmlns:xsi:是指当前xml所要遵循的标签规范.

   如上hdp, xsi, aop, cache, context, mvc…都是当前xml要使用到的一个标签,后面就是指定标签所要遵循的规范。

   xsi:schemaLocation:指定的命名空间对应的验证文件,用来定义xml schema的地址,也就是xml书写时需要遵循的语法,用于声明了目标命名空间的模式文档。。两部分组成,前面部分就是命名空间的名字,后面是xsd(xmlschema)的地址,也是就表示把定义这个命名空间的schema文件给引用进来,好让eclipse这类型工具能够解析和验证你的xml文件是否符合语法规范。等同于。用于声明了目标命名空间的模式文档。

<?xml version="1.0" encoding="UTF-8"?>
<eUdstand-module xmlns="http://www.eUdstand.com.cn/eUdstand-module" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eUdstand.com.cn/eUdstand-module eUdstand-module.xsd " load-on-startup = "-10"><module-config><module-name>eUdstand-core</module-name><module-title>易晰报表核心模块</module-title><module-version>1.0.0</module-version></module-config>
</eUdstand-module>

http://www.ppmy.cn/news/155029.html

相关文章

CS_2023_01

V i , t 199992 w ∗ V i , t c 1 ∗ r 1 ∗ ( P b e s t i , t − X i , t ) c 2 ∗ r 2 ∗ ( G b e s t t − X i , t ) \begin{equation} \begin{split} V_{i,t199992} w * V_{i,t} \\ c_1 * r_1 * (Pbest_{i,t} - X_{i,t}) \\ c_2 * r_2 * (Gbest_t - X_{i,t}) \end…

SXR

sxrApi.h svrApiCoreQvrServiceClient svrApiCore qvrClientStatusCallback&#xff1a; client状态回调&#xff08;kEventSensorError&#xff09;&#xff0c;在sxrInitialize&#xff08;&#xff09;的时候通过调用QVRServiceClient_SetClientStatusCallback&#xff08;&…

秒懂百科 | 什么是点云?

以下文章来源于天宝Trimble Geospatial 点云是一个数据集&#xff0c;数据集中的每个点代表一组X、Y、Z几何坐标和一个强度值&#xff0c;这个强度值根据物体表面反射率记录返回信号的强度。当这些点组合在一起时&#xff0c;就会形成一个点云&#xff0c;即空间中代表3D形状或…

Quasar中q-select中的事件触发

前提&#xff1a;项目是quasar结合vue3.0进行开发。 要实现q-select中改变下拉框选项触发函数&#xff0c;查看Quasar v2文档可以发现,使用 update:model-value“”即可. 项目中代码&效果如下&#xff1a; <q-selectstyle"width:180px"class"my-sele…

联想微型计算机怎么拆开图解,Lenovo(Ideapad)笔记本如何拆卸及安装电池

目前采用外置电池设计的机型多见于联想扬天、昭阳等商用笔记本及部分非超薄设计的电脑上&#xff0c;如下图为扬天B41-35笔记本背面电池锁扣示意图&#xff1a; 外置电池拆装方法&#xff1a; 1、辨识手动锁扣与弹簧式锁扣 目前销售的Lenovo笔记本电脑若为外置电池&#xff0c;…

永磁同步电机d-q轴电压方程中耦合项的正负号问题

永磁同步电机d-q轴电压方程中耦合项的正负号问题 永磁同步电机的电压方程&#xff1a; 我们来讨论下&#xff0c;在d-q轴电压方程中&#xff0c;为什么在d轴上&#xff0c;q轴的耦合项是负的&#xff0c;而在q轴上&#xff0c;d轴的耦合项是正的&#xff1f; 首先说明一个问…

强化学习实战-使用Q-learning算法解决迷宫问题

Q-learning简介 Q-learning也是采用Q表格的方式存储Q值&#xff08;状态动作价值&#xff09;&#xff0c;决策部分与Sarsa是一样的&#xff0c;采用ε-greedy方式增加探索。Q-learning跟Sarsa不一样的地方是更新Q表格的方式。Sarsa是on-policy的更新方式&#xff0c;先做出动…

用C语言画一个Q版奥特曼

有一天原本平静的村庄突然受到不明寄生生命体的袭击&#xff01;“快逃&#xff01;”“可是……” 快找出怪兽玛格尼亚的弱点&#xff0c;欢迎收看迪迦奥特曼的下集大雾来了。 今天分享一个用C语言画Q版奥特曼的源码~ 用到的是easyx图形库绘图功能&#xff0c;所以需要下载安…