使用W3C XML Schema(1)

W3C XML Schema 活动 W3C XML Schema作为一种强大的数据描述语言,在数据交换、数据存储、应用集成等领域具有广泛的应用。随着Web技术和云计算的发展,XML Schema的未来发展趋势值得期待。本文对W3C XML Schema的活动进行了概述,旨在帮助读者更好地了解这一技术。 阅读详情

W3C XML Schema 定义语言是描述和约束XML文档内容的XML语言,W3C推荐使用W3C XML Schema。

本文介绍了如何使用W3C XML Schema,还包括了对Schema数据类型和结构的完整参考。

第一个Schema

让我们从一个描述一本书的简单文档开始:

<? xml version="1.0" encoding="UTF-8" ?>
< book  isbn ="0836217462" >
 
< title >
  Being a Dog Is a Full-Time Job
 
</ title >
 
< author > Charles M. Schulz </ author >
 
< character >
  
< name > Snoopy </ name >
  
< friend-of > Peppermint Patty </ friend-of >
  
< since > 1950-10-04 </ since >
  
< qualification >
    extroverted beagle
  
</ qualification >
 
</ character >
 
< character >
  
< name > Peppermint Patty </ name >
  
< since > 1966-08-22 </ since >
  
< qualification > bold, brash and tomboyish </ qualification >
 
</ character >
</ book >

要为这份文档写一份scheme,可以从它的结构和定义我们看到的每个元素开始,我们现在从xs:schema元素开始:

<? xml version="1.0" encoding="UTF-8" ?>  
< xs:schema 
xmlns:xs ="http://www.w3.org/2001/XMLSchema" >  
.../... 
</ xs:schema >  

定义从schema 元素开始,它也包括了目标名称空间的定义和几个默认选项,我们会在下面章节中看到它们。

为了匹配book 元素标签,我们定义一个叫做book的元素。这个元素具有属性而无文字子节点,因此我们认为它是一个complexType (因为另一个数据类型simpleType 是只包括数据值而没有子节点或者属性),book元素的子节点使用sequence 元素进行定义:

 
< xs:element  name ="book" >
  
< xs:complexType >
    
< xs:sequence >
     .../...
    
</ xs:sequence >
    .../...
  
</ xs:complexType >
</ xs:element >

sequence 定义了顺序的子元素,接下来的章节还会探讨另外两个同样的元素:choice和all。

现在,我们来定义title和author元素为简单类型——因为它们没有包含属性和非文本元素,并且可以在一个退化的元素element 内部直接描述。类型(xs:string)是被预先加了XML scheme相关的名称空间前缀,表示为预定义的XML scheme数据类型:

< xs:element  name ="title"  type ="xs:string" />  
< xs:element  name ="author"  type ="xs:string" />  

现在,我们必须来处理character 元素了,它是一个复杂类型,注意它的基数(cardinality )是如何定义的:

< xs:element  name ="character"  minOccurs ="0"  maxOccurs ="unbounded" >  
< xs:complexType >  
< xs:sequence >  
.../... 
</ xs:sequence >  
</ xs:complexType >  
</ xs:element >

不像其他的scheme定义语言,W3C XML Schema  允许我们定义一个元素的精密基数(例如:可能的数目),我们可以一起指定minOccurs(最小可能)和maxOccurs (最大可能),这里maxOccurs 设置为unbounded 意思是该节点无最大数目限制,可以任意多。 

我们使用同样的方式指定所有的子节点:

< xs:element  name ="name"  type ="xs:string" />  
< xs:element  name ="friend-of"  type ="xs:string"  minOccurs ="0"  maxOccurs ="unbounded" />  
< xs:element  name ="since"  type ="xs:date" />  
< xs:element  name ="qualification"  type ="xs:string" />

我们现在可以声明元素的属性了,一般在最后这样做。似乎并没有什么特别的理由这样做,但是W3C XML Schema工作组已经认为在一种复杂的类型内把一项有关的命令强加到元素列表和属性的定义更简单,并且在元素之后定义属性是更自然的。

< xs:attribute  name ="isbn"  type ="xs:string" />  

就是这样!第一次的设计,有时也被称为“俄罗斯玩偶设计”,紧随我们示例文档的结构。

其中这样的设计的一个关键特点是定义一个上下文中的每个元素和属性,并允许多个事件的同一元素的名称,进行不同的定义。

本例的完整scheme定义如下:

<? xml version="1.0" encoding="utf-8" ?>  
< xs:schema  xmlns:xs ="http://www.w3.org/2001/XMLSchema" >  
< xs:element  name ="book" >  
< xs:complexType >  
< xs:sequence >  
< xs:element  name ="title"  type ="xs:string" />  
< xs:element  name ="author"  type ="xs:string" />  
< xs:element  name ="character"  minOccurs ="0"  maxOccurs ="unbounded" >  
< xs:complexType >  
< xs:sequence >  
< xs:element  name ="name"  type ="xs:string" />  
< xs:element  name ="friend-of"  type ="xs:string"  minOccurs ="0"  
maxOccurs
="unbounded" />  
< xs:element  name ="since"  type ="xs:date" />  
< xs:element  name ="qualification"  type ="xs:string" />  
</ xs:sequence >  
</ xs:complexType >  
</ xs:element >  
</ xs:sequence >  
< xs:attribute  name ="isbn"  type ="xs:string" />  
</ xs:complexType >  
</ xs:element >  
</ xs:schema >

下面的章节探讨了如何细分模式设计,以使它们更具可读性和可维护性。


使用W3C XML Schema(2)

使用W3C XML Schema(3)

使用W3C XML Schema(4)

使用W3C XML Schema(5)

使用W3C XML Schema(6)

使用W3C XML Schema(7)

使用W3C XML Schema(8)

使用W3C XML Schema(9)(全文完)

Unity3D 2022版如何一键安装Newtonsoft.Json?最新Package Manager教程 本文详细介绍了在Unity3D 2022及以上版本中,如何通过Package Manager一键安装和配置Newtonsoft.Json(Json.NET)。教程涵盖了从打开Package Manager、搜索并安装正确包源,到验证安装和基础使用的完整流程,旨在帮助开发者以现代化、可靠的方式集成这一强大的JSON处理框架,提升开发效率并规避手动导入的常见问题。 阅读详情

相关推荐

Logisim实战:手把手教你设计硬布线版MIPS CPU(多周期/8指令/附电路图)

本文是一份详细的Logisim实战指南,手把手教你设计一个采用硬布线控制的多周期MIPS CPU。文章深入剖析了硬布线控制与微程序控制的核心理念差异,并逐步讲解了从定义执行状态、构建状态跳转逻辑到生成控制信号、集成测试的完整流程,最终实现一个支持8条指令、可运行简单程序的处理器模型。

g9h0i1的博客 592

XML 学习 (1) —— 译自W3C教程

Schema入门XML 文档例子 "note.xml": Tove Jani Reminder Dont forget me this weekend!

Ogre专栏 631

零代码做游戏:AI辅助开发HTML5网页小游戏从创意到发布全流程

在软件开发领域,自然语言编程正成为一种新兴的人机协作方式,而AI辅助开发则是其最典型的落地形态。它让开发者无需精通语法,只需用清晰的语言描述游戏规则与交互逻辑,AI便能自动生成可运行的代码。这种模式大幅降低了编程门槛,尤其适合快速验证创意、制作原型。对于HTML5网页游戏而言,借助AI生成单个HTML文件,配合在线运行环境,即可在浏览器中直接试玩、迭代与分享。无论是产品经理验证玩法、运营人员制作互动小游戏,还是教育者设计课堂闯关,都能通过自然语言描述需求,让AI完成代码实现与报错修复。本文完整记录了一个“接

weixin_31497453的博客 333

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance(xsi:schemaLocation详解)

http://topic.youkuaiyun.com/u/20110117/01/3e3cc322-8f8e-4c2b-8cbb-768bf7319c59.html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"中xsi的意思是 : 本xml文件中要用到某些来自xsi代表的“http://www.w3.org/2001/XMLSchema-in

走马观花 2万+

开发基于GDL235KBQ6开发板的IAP升级程序(HEX协议+串口空闲中断 + DMA接收数据)

使用GDL235kB开发板,实现串口iap升级程序的bootloader代码编写,app为led灯闪烁,并完成通信c代码

zhaozijuncc的博客 645

YOLO26涨点改进 | 独家创新,细节涨点改进篇 | CVPR 2025顶会 | YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文

本文给大家介绍Mona即插即用模块, 含MoCAA和DyTMona二次创新模块优化YOLO26模型。YOLO26引入 Mona通过引入多尺度视觉友好型卷积滤波器(如3x3、5x5、7x7深度卷积)和可伸缩归一化层来优化适配器设计,以更好地处理视觉信号并调节输入特征分布。YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文。适合目标检测、图像分割、图像分类等所有CV任务通用即插即用模块。

Ai缝合怪、助力小伙伴高效发论文 241

XML Schema 1.1简介

本系列的其他文章 XML Schema 1.1,第2部分:使用XPath 2.0的共现约束 XML Schema 1.1,第3部分:通过强大的通配符支持发展您的模式 自从XML Schema 1.0规范在2001年成为W3C建议以来,开发人员社区已经讨论了该语言的优缺点。 W3C XML Schema工作组已经开发了该语言的下一个版本。 2005年,随着该标准在业界的广泛采...

cuyi7076的博客 1053

基于YOLOv8的智能肿瘤检测系统:从图像到诊断的深度学习应用——含代码和论文

本文提出了一种基于YOLOv8深度学习的智能肿瘤检测系统,用于医学影像(CT/MRI/X光)的自动分析与诊断。针对传统人工阅片效率低、主观性强的问题,系统采用最新的YOLOv8目标检测算法,通过改进的C2F骨干网络、Anchor-Free检测头和解耦头等创新设计,实现高效精准的肿瘤定位。文章详细阐述了模型架构、数据处理流程、训练优化方法及PyQt5用户界面开发,为临床提供可靠的AI辅助诊断工具。实验结果表明,该系统在速度和准确率上达到良好平衡,有望提升肿瘤早期筛查效率。

FJN110的博客 199

XML Schema 1.1 简介

来源:http://www.ibm.com/developerworks/cn/xml/x-xml11pt2/?S_TACT=105AGX52&S_CMP=tec-csdn本系列文章共分 6 个部分,本文是第 2 篇,作者 Neil Delima、Sandy Gao、Michael Glavassevich 和 Khaled Noaman 将深入探讨 XML Schema 1.1 引入的共同约

TonyWang的专栏 1970

Microsoft Forms功能深度解析:企业数据收集与协作的智能利器

Microsoft Forms是微软365生态中的在线表单工具,支持问卷调查、测验和投票创建,具备拖拽式界面、多题型设计和实时数据分析功能。其核心价值在于易用性、跨平台兼容性以及与Teams、SharePoint等微软服务的深度集成,满足GDPR/HIPAA等合规要求。提供表单创建、权限管理、自动化流程(通过Power Automate)和审计日志等功能,适用于金融、医疗、教育等多行业场景。虽然存在逻辑分支有限等约束,但通过案例证明能显著提升数据收集效率(达70-85%)。使用时需注意许可证配置(Busin

xueyunshengling的博客 9125

【专栏必读】王道考研408数据结构+算法设计与分析万字笔记使用说明及章节导航

各位老铁思维导图在我整理完笔记后会放上去的,我需要根据王道的思维导图重新再做一遍 文章目录一:有关注意事项二:关于专栏三:学习建议四:各专栏导航(各位老铁别催,质量优先)(1)第一章:绪论(2)第二章:线性表(3)第三章:栈和队列第四章:串第五章:二叉树第六章:图 首先感谢王道大大(手动比心),很用心在做了,大家可以看其中两节是否符合胃口 (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序) (王道408考研数据结构)第五章树-第四节2:平衡二叉树(AVL)及其旋转 一:有.

快乐江湖的博客 5万+

XML Schema(W3C)数据类型

XML Schema(W3C)数据类型XML Schema数据类型总体上分为简单类型和复杂类型。掌握了这部分的知识就掌握了它70%的内容。简单类型简单类型细分之后大概的结构如下: 内置基本类型:该类型与其它计算机语言中所提供的数据类型相似,有以下类型:string,boolean,float,double,decimal,time,datatime。比较特殊的是:duration(持续的日期/时间数

cg_Amaz1ng的博客 3264

FPGA 学习笔记:解决FPGA程序固化重新上电程序不运行的问题

FPGA 学习笔记:解决FPGA程序固化重新上电程序不运行的问题

坚韧与专注 1万+

使用W3C XML Schema(1)

最近配合做接口测试,需要用到schema验证,以前没接触过schema,原来还是很好用滴;转一个找到的不错资料,收藏。 转载地址:http://blog.chinaunix.net/space.php?uid=9195812&do=blog&id=2006657 W3C XML Schema 定义语言是描述和约束XML文档内容的XML语言,W3C推荐使用W3C XML Sche

xwzyxlyl的专栏 513

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

XML Schema Part 2: Datatypes Second Edition

 XML Schema Part 2: Datatypes Second EditionW3C Recommendation 28 October 2004<!--* W3C Recommendation 2 May 2001, Second Edition 28 October 2004*-->This version:http://www.w3.org/TR

技术源于生活 3962

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

XML 入门 A- Z

最近工作中用到XML, 很久不用, 不少知识点都已经模糊了。 在网上搜索了一下,大部分的帖子要么年纪太大,要么不够深入。 因此开这个帖子,一方面自己重新复习一下XML的知识,另外一方面也可以和大家交流下。 说的不对的欢迎指出, 大家有问题也欢迎提出, 共同研究啊。 开篇 XML 的全称是 Extensible Markup Language. XML标准和HTML标准一样,是SGML(St...

bfox的专栏 210

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

2.4 编码->W3C XML 1.0标准(W3C Recommendation):XML(Extensible Markup Language)

XML 是可扩展的标记语言,核心用于存储 / 传输结构化数据,语法严格(标签闭合、嵌套、转义是关键)XML 的核心优势是可扩展、跨平台,但语法繁琐,现在数据交互场景逐渐被 JSON 替代,主要用于老系统和配置文件解析 XML 时需遵守语法规则,常用工具(如 Python 的 ElementTree)可快速提取标签、属性、文本数据。

weixin_41576682的博客 356

JSR 222: JavaTM Architecture for XML Binding (JAXB) 2.0

Stage Access Start Finish Maintenance Release 3 Download page 19 Sep, 2017 Maintenance Review Ballot View results 18 Apr, 2017 01 May, 2017 Maintenance Draft Review 3 Download page 30 Mar,...

[Blog][Domain] programb.blog.youkuaiyun.com 720

xerces java_Apache Xerces2 Java

Apache Xerces2 JavaXerces2 Java is a library for parsing, validating and manipulating XML documents.Xerces 2.x introduced the Xerces Native Interface (XNI), a complete framework for building parser co...

weixin_39663605的博客 614

给XML文件定义DTD--基础篇

DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。XML文件中的元素,即我们所创建的标记,是根据我们应用的实际情况来创建的。想要创建一份完整性高、适应性广的DTD是非常困难的,因为各行各业都有他们自己的行业特点,所以DTD通常是以某种应用领域为定义的范围,     DTD实际上可以

Lison 1005

XML基础-DTD/Schema

  XML文件开发中几乎天天用,但很少去了解它的各种定义与原理,一篇博客虽然不能做到完全通透,但至少要让自己遇到bug不再慌乱。   XML指可扩展语言,全称eXtensible MarkupLanguage,其宗旨是为了描述数据,而不是像HTML那样显示数据。目前遵循的是W3C组织于2000年发布的XML1.0规范。使用场景主要为描述数据和充当配置文件。 基本语法   文...

Lucien1121的博客 132

W3C XML Schema 教程

XML: <note xmlns="http://www.w3schools.com"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.w3schools.com note.xsd">   Tove Jani Reminder Don't forget me thi

xuxiu_1972的专栏 654

Java之XML的使用

一.xml的定义和优势: (1).定义: 在描述一些有结构性的数据时应当使用XML来描述,例如:用户信息/省市结构等 XML(eXtensible Markup Language),是一种可扩展的标记语言,类似HTML。 XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前遵循的是W3C组织于1998年发布的XML1.0规范。 HTML: 显示页面,网...

weixin_41588751的博客 982

JAXP 1.3 的新特性,第 1 部分

技术综述,考察解析 API 的变化和新的验证 API 级别: 中级 Neil Graham (neilg@ca.ibm.com) , XML 解析器开发经理, IBM Elena Litani (elit...

a775252的博客 194

Xml文件约束规则使用详解

在开发Android应用程序的时候,我们经常都会操作一些Xml文件用以构建我们的Android工程。例如:用以规划Android界面的布局文件,Android工程中的AndroidManifest.xml清单文件,资源文件等等。有趣的是每次我们在这些Xml文件中添加自己的代码时,都会按照一定的规则进行添加,而我们大多数人都不知道编写Xml文件时所遵循的约束规则是怎么来的。在这里我就来向大家揭秘一下Xml文件的约束规则,以及怎么定义自己的约束规则!

华清远见 | 程序员的学习天堂 3820

XML 1.0规范

XML 1.0规范链接:http://www.w3.org/TR/1998/REC-xml-19980210 ...

csdndownload11123的博客 336
上一篇: 个人对SCA标准中Component,Composite等几个关键概念的理解
下一篇: 使用W3C XML Schema(2)
iStringTheory
博客等级 码龄25年 414粉丝 85原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值