xml配置

实现XML的简单动态配置 阅读详情

转载地址:http://jackma.cnblogs.com/

详细学习资料:http://www.w3schools.com/schema/default.asp


Preface:本文是W3Schools上《Schema指南》的学习笔记。其中大部分内容是对指南的翻译总结。由于原文的例子更详尽生动,如果各位想阅读原文可以到这个网址http://www.w3schools.com/schema/default.asp。同时,W3Schools提供了测试,大家可以测试一下自己的理解程度。

        所谓的复杂类型Complex Type其实就是指ComplexElement。概括的说,包含有属性或其他元素的Element,就称为ComplexElement。ComplexElement可分为四种:

  • empty elements
    <product pid="1345"/>
    自闭合的Element,同时由于包含有Attribute的关系所以属于ComplexElement。

  • 只包含其他Elements的元素
    <employee>
    <firstname>John</firstname>
    <lastname>Smith</lastname>
    </employee>

  • 只包含Text的Element
    <food type="dessert">Ice cream</food>
    说明这里与SimpleElement不同的是,“type”是自定义的数据类型而且是一个ComplexType,而不是Schema内置的。同时这个Element是带有属性的。

  • 同时包含有其他Element和Text的元素
    <description>
    It happened on <date lang="norwegian">03.03.99</date> ....
    </description>

 

一、概览ComplexElement

定义一个ComplexElement
例如在XML中有如下元素

< employee >
< firstname > John </ firstname >
< lastname > Smith </ lastname >
</ employee >

使用Schema定义就是

< xs:element  name ="employee" >
< xs:complexType >
< xs:sequence >
< xs:element  name ="firstname"  type ="xs:string" />
< xs:element  name ="lastname"  type ="xs:string" />
</ xs:sequence >
</ xs:complexType >
</ xs:element >

注意这里的ComplexType不能被其他元素使用,所以如果要考虑重用,可以使用下面的方式。

< xs:element  name ="employee"  type ="personinfo" />
< xs:complexType  name ="personinfo" >
< xs:sequence >
< xs:element  name ="firstname"  type ="xs:string" />
< xs:element  name ="lastname"  type ="xs:string" />
</ xs:sequence >
</ xs:complexType >  

这里的格式与之前定义约束的时候很相似。不过约束是使用<xs:simpleType>定义的。

重用已定义的ComplexElement
说到重用,你还可以在现有的ComplexType基础上进行扩展,形成新的ComplexType。如下:

< xs:element  name ="employee"  type ="fullpersoninfo" />

< xs:complexType  name ="personinfo" >
< xs:sequence >
< xs:element  name ="firstname"  type ="xs:string" />
< xs:element  name ="lastname"  type ="xs:string" />
</ xs:sequence >
</ xs:complexType >

< xs:complexType  name ="fullpersoninfo" >
< xs:complexContent >
< xs:extension  base ="personinfo" >
< xs:sequence >
< xs:element  name ="address"  type ="xs:string" />
< xs:element  name ="city"  type ="xs:string" />
< xs:element  name ="country"  type ="xs:string" />
</ xs:sequence >
</ xs:extension >
</ xs:complexContent >
</ xs:complexType >

注意关键的是用“base”属性指出是对哪个元素进行扩展。这里fullpersioninfo将包含firstname,lastname,address,city,country的信息。

二、Empty Element

有一个EmptyElement如下

< product  prodid ="1345"   />  

那么使用定义应为

< xs:element  name ="product" >
< xs:complexType >
< xs:attribute  name ="prodid"  type ="xs:positiveInteger" />
</ xs:complexType >
</ xs:element >  

注意,你仍然可以使用“name”属性为complexType指定名称,然后在element中使用“type”属性指定类型。从而能够在多个element中使用这个类型定义。

三、Elements Only

以下的ComplexType是只包含其他元素的。

< person >
< firstname > John </ firstname >
< lastname > Smith </ lastname >
</ person >  

在Schema中定义如下

< xs:element  name ="person" >
< xs:complexType >
< xs:sequence >
< xs:element  name ="firstname"  type ="xs:string" />
< xs:element  name ="lastname"  type ="xs:string" />
</ xs:sequence >
</ xs:complexType >
</ xs:element >

这里要注意的是<xs:sequence>的意义,是指里面包含的元素(firstname,lastname)在XML中(person)必须按照定义的顺序出现。

四、Complex Text-Only Elements

<shoesize country="france">35</shoesize>
定义如下

< xs:element  name ="shoesize" >
< xs:complexType >
< xs:simpleContent >
< xs:extension  base ="xs:integer" >
< xs:attribute  name ="country"  type ="xs:string"   />
</ xs:extension >
</ xs:simpleContent >
</ xs:complexType >
</ xs:element >  

这里要注意的是由于Element包含简单的内容和属性,所以要使用<xs:simpleContent>将其括住。同时,因为使用了<xs:simpleContent>就必须定义一个扩展(extension)或约束(restriction)。

五、同时包含有其他Element和Text的元素(mix属性)

< letter >
Dear Mr.
< name > John Smith </ name > .
Your order 
< orderid > 1032 </ orderid >
will be shipped on 
< shipdate > 2001-07-13 </ shipdate > .
</ letter >

< xs:element  name ="letter" >
< xs:complexType  mixed ="true" >
< xs:sequence >
< xs:element  name ="name"  type ="xs:string" />
< xs:element  name ="orderid"  type ="xs:positiveInteger" />
< xs:element  name ="shipdate"  type ="xs:date" />
</ xs:sequence >
</ xs:complexType >
</ xs:element >

注意,由于有字符出现在元素之间,所以要设定complexType的mixed属性为true。



Vitis Model Composer闪退?手把手教你用命令行启动Vivado 2021后的System Generator 本文详细解析了Vitis Model Composer闪退问题的根本原因,并提供了命令行启动Vivado 2021后System Generator的完整解决方案。从环境变量配置、组件缺失排查到权限问题处理,手把手教你通过命令行深度排错,并分享高级自动化脚本和系统优化技巧,帮助开发者高效使用Vitis Model Composer与System Generator进行HDL开发。 阅读详情

相关推荐

Zemax操作41--公差分析(一)

zemax公差

lzy750750的博客 5973

XML学习笔记(六)Schema语法之复杂类型

Preface:本文是W3Schools上《Schema指南》的学习笔记。其中大部分内容是对指南的翻译总结。由于原文的例子更详尽生动,如果各位想阅读原文可以到这个网址http://www.w3schools.com/schema/default.asp。同时,W3Schools提供了测试,大家可以测试一下自己的理解程度。 所谓的复杂类型Complex Type其实就是...

asq00220的博客 344

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1094

XSD-6 Schema 面向对象之复合元素 complexType

4 Schema 面向对象之 complexType4 Schema 面向对象之 complexType关联继承 4 Schema 面向对象之 complexType <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDe...

怀旧豆酱味的专栏 1136

SRC漏洞挖掘实战:从攻击面管理到业务逻辑漏洞的精准狩猎

在网络安全领域,漏洞挖掘是识别和利用软件系统中安全弱点的核心实践。其基本原理在于通过系统化的方法,识别和评估一个应用或系统的攻击面,并从中定位安全防护的薄弱环节。这项技术的价值在于能够主动发现潜在风险,防患于未然,对于保障企业数字资产安全至关重要。典型的应用场景包括对Web应用、移动端API以及各类在线业务系统的安全性评估。在实际的漏洞挖掘,尤其是针对安全应急响应中心(SRC)的实战中,高效的策略往往聚焦于**边缘资产**的发现与利用,以及对**业务逻辑漏洞**的模式化测试。掌握这些经过验证的思路,能帮助安

babing2770的博客 415

Monocle2在R 4.3环境下的终极避坑指南:从安装到可视化全流程解析

本文提供了在R 4.3环境下安装和运行Monocle2的完整解决方案,重点解决了依赖包兼容性、源码修改及BEAM分析报错等关键问题。文章详细解析了从环境准备、依赖包处理、源码安装验证到从Seurat对象转换、拟时轨迹构建、高级可视化及性能优化的全流程,旨在帮助用户顺利完成单细胞拟时分析。

weixin_29206669的博客 1356

XML Schema 复合类型 - 混合内容

在 XML Schema 中,可以使用元素定义混合内容。通过将元素的mixed属性设置为true,可以指定该类型允许混合内容。在这个示例中,是一个混合内容的复合类型,它扩展了xsd:string类型,并允许包含bold和italic元素。

lsx202406的博客 546

免费大容量国外网盘测评:冷数据归档与rclone加密接入

云存储的本质,是通过对象存储、冗余编码和分层缓存,把本地磁盘容量问题转化为网络访问与数据管理问题。免费大容量国外网盘常以空间换用户规模或付费转化,容量政策、传输策略、协议支持和退出成本,往往比标称容量更决定长期可用性。支持 WebDAV、S3 兼容和命令行工具的服务,可接入 rclone 等自动化流程,再配合客户端加密与冷热分层,用于冷数据归档、老项目备份和家庭影像保存。理解带宽换算、单文件上限、保活机制与传输一致性后,评估话题型大容量网盘与专业向协议网盘,就能把免费空间纳入可靠存储层。围绕免费大容量国外网

weixin_31292729的博客 214

XML Schema 元素

XML Schema 元素是 XML 文档结构和内容的关键组成部分。通过定义元素类型、属性和用法,XML Schema 确保了 XML 文档的数据完整性和准确性。了解 XML Schema 元素的基本概念和用法,有助于更好地设计和使用 XML 文档。

xyq2024的博客 505

华为OD机试 - 比赛的冠亚季军(Python/JS/C/C++ 双机位C卷 100分)

有个运动员,他们的id为0到N-1,他们的实力由一组整数表示。他们之间进行比赛,需要决出冠亚军。比赛的规则是0号和1号比赛,2号和3号比赛,以此类推,每一轮,相邻的运动员进行比赛,获N (3\leq N< 10000)胜的进入下一轮,实力值大的获胜,实力值相等的情况,id小的情况下获胜,轮空的直接进入下一轮。(0 <= 实力值 <= 10000000000)。输入一行N个数字代表N的运动员的实力值。输出冠亚季军的id,用空格隔开。

学Java,找哪吒 1587

全志T527 适配双目tp2815_mipi

在全志T527 linux下适配双目TP2815 mipi摄像头,支持六路同时输出,四路可用作360环视、一路face id等,一路用于其它开发。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 3818

一篇关于web.xml配置的详细说明

1 定义头和根元素部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。所有部署描述符文件的顶层(根)元素为web-ap

gdsy的专栏 1949

最新Python爬虫实战(入门爬虫篇)——案例13:某乎热榜数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例通过Python爬虫技术,成功实现了基于Cookies认证的某乎热榜数据爬取与Excel保存。代码采用模块化设计,包含Cookies解析、HTML请求、结构化解析、Excel持久化等完整流程;通过配置浏览器请求头+Cookies认证,有效突破某乎基础反爬策略,保证请求稳定性。整个爬虫逻辑遵循“Cookies认证 → 页面请求 → HTML解析 → 数据清洗 → 保存到Excel”的标准流程,与需要会话验证的网站爬取范式高度一致。Cookies解析与认证。

努力让自己发光,对的人才能迎着光而来 33万+

XML配置文件

1.创建SAXReader对象。

qq_44325580的博客 810

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring中Xml文件配置以及使用注解消除Xml

快速了解Spring中Xml文件配置以及使用注解消除Xml

qq_25206103的博客 1260

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

web.xml 的配置

Servlet配置:可以通过web.xml文件配置Servlet的名称、类名、URL映射等信息。使用元素来定义Servlet,可以使用元素定义Servlet的名称,使用元素定义Servlet的类名。Servlet映射:可以通过web.xml文件配置Servlet的URL映射规则,使得特定的URL请求能够被特定的Servlet处理。使用元素来定义Servlet的URL映射,可以使用元素指定Servlet的名称,使用元素指定URL的匹配规则。

Flying_Fish_roe的博客 3192

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring XML 配置

使用。

yuren_xia的博客 1538

【JavaWeb】XML配置文件

XML 配置文件 配置文件的作用 配置文件是用于给应用程序提供配置参数以及初始化设置的一些有特殊格式的文件 常见的配置文件类型 properties文件,例如druid连接池就是使用properties文件作为配置文件 XML文件,例如Tomcat就是使用XML文件作为配置文件 YAML文件,例如SpringBoot就是使用YAML作为配置文件 json文件,通常用来做文件传输,也可以用来做前端或者移动端的配置文件 1. properties文件 文件示例 atguigu.jdbc.url=jdbc

runofsun的博客 2575

XML配置

用户可以在POM的元素下自定义Maven属性--配置依赖版本--> < properties > <!--配置依赖版本--> < properties > <!--配置依赖版本--> < properties > <!</--配置依赖版本--> < properties > <!--配置依赖版本--> < properties > <!</--配置依赖版本--> < properties > <!--配置依赖版本--> < properties > <!</

qq_61660067的博客 1352

如何使用XML 配置的方式配置Spring?

在Spring 框架中,依赖和服务需要在专门的配置文件来实现,我常用的XML 格式的配置文件。这些配置文件的格式通常用开头,然后一系列的bean 定义和专门的应用配置选项组成。 SpringXML 配置的主要目的时候是使所有的Spring 组件都可以用xml 文件的形式来进行配置。这意味着不会出现其他的Spring 配置类型(比如声明的方式或基于Java Class 的配置方式) Spring 的XML 配置方式是使用被Spring 命名空间的所支持的一系列的XML 标签来实现的。Spring有以下主要

Leon_Jinhai_Sun的博客 732

spring xml的配置

               Spring xml文档头得配置    spring文档头一般是可以复制过来得,刚学习得时候一直看网上有没有配置,然后也没有找到,希望以下过程得学习可以给大家带来帮助!!   1.Spring配置方法:首先写一个source Folder 专门来写xml文档,再建一个spring包      2.右键spring包,--...

diyingshou8608的博客 1506

Spring的xml文档配置

1 2注解的context名称空间 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context

Dylan6868的博客 4142

Spring MVC零XML配置

Spring MVC

qq1929892209的博客 1228

基于xml配置spring

XML使用有意义的

陈科余的专栏 526

xml配置解析

MyBatis核心配置文件(mybatis-config.xml)是框架运行的关键配置,主要包括:1. 环境配置(environments),支持多环境但一次只能激活一个;2. 数据源类型(POOLED/UNPOOLED/JNDI);3. 属性配置(properties)支持外部文件引用;4. 类型别名(typeAliases)简化类名书写;5. 映射器(mappers)有三种注册方式:资源引用、类注册和包扫描。注意SqlSessionFactory应采用单例模式,而SqlSession需在方法作用域内使用

weixin_63181475的博客 850

xml文件在Eclipse中配置及错误总结

自动提示 Eclipse中集成一些框架或项目的dtd文件,所以配置这些框架或项目配置文件的时,会得到提示。但对于其他的一些框架或项目,或是上文中说的集成的,但版本不同,导致不能得到自动提示。这是我们就需要手动进行配置。下面以 为 log4j的配置文件添加自动提示 为例。 方法1. 配置log4j.dtd文件: Windows -&gt; Preferences -&gt; XML -&gt...

xiayiguo的专栏 1万+
上一篇: Java工程重新import到eclipse时,所有implements了interface的Class中的方法@Override Annotation均提示错误
下一篇: String 的 split 方法
courage89
博客等级 码龄16年 20粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值