使用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)(全文完)

【系统架构设计师】二十三、通信系统架构设计理论与实践① 通信网络主要形式:局域网、广域网、移动通信网。 局域网网络架构有 4 种类型:单核心架构、双核心架构、环型架构、层次型架构。 广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成。通常,在大型网络构建中,通过广域网将分布在各地域的局域网互连起来,形成一个大的网络。 移动通信网为移动互联网提供了强有力的支持,尤其是5G 网络为个人用户、垂直行业等 提供了多样化的服务。 阅读详情

相关推荐

扣子(coze)实战|手把手教你搭建AI换装自动化工作流

摘要:本文介绍了使用Coze平台搭建AI换装工作流的详细教程。工作流包含模特图片上传、服装替换、任务提交和智能轮询等模块,通过change_model插件实现异步换装处理,并内置30秒循环查询机制。该工具支持自定义API密钥对接不同AI服务商,目前已上线共享空间并提供会员服务(59.8元/年)和VIP课程(499元/年),包含100+智能体和实战案例资源。完整体验地址见文中链接。

yueyehuguang的博客 1843

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

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

Ogre专栏 631

ROS2 Control实战:多机器人仿真与控制器管理

本文详细介绍了ROS2 Control在多机器人仿真中的应用,涵盖命名空间配置、控制器管理及性能优化。通过Gazebo仿真环境和ROS2 Control框架,开发者可以高效管理多个机器人的硬件抽象和控制器,实现资源隔离与平滑切换。文章还提供了常见问题排查和调试工具推荐,助力机器人开发实践。

u9v0w的博客 203

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万+

Netron显示自定义属性,按属性设置不同节点的颜色

本文介绍了一种让Netron显示自定义颜色的方法,可根据某些属性,调整节点的颜色 需求背景: 在分析AI模型精度误差时,用不同等级的红色,表示误差的大小.可以直观地看到误差的传递关系

Hi20240217的博客 1513

ArcGIS Pro中协同区位熵方法在商业选址分析中的应用

本文详细介绍了如何利用ArcGIS Pro中的协同区位熵方法进行科学的商业选址分析。该方法通过量化目标客户与竞争对手在空间上的关联程度,精准识别市场空白区与竞争红海,帮助决策者从“凭感觉”转向“用数据说话”,有效提升选址成功率和投资回报。

weixin_29214559的博客 360

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

版图学习汇总十一(DRC、LVS注意事项)

esd。

weixin_56071389的博客 2262

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

Multisim14.3主数据库访问冲突:Windows更新KB5065426卸载与系统兼容性修复指南

本文针对Multisim14.3在Windows更新KB5065426后出现的主数据库访问冲突问题,提供了详细的解决方案。通过卸载问题更新、修复系统兼容性及调整权限设置,帮助用户快速恢复元器件库的正常访问,确保电路仿真设计的连续性。

lstm7chronicler的博客 513

AgentScope Java 2.0 项目实战: 从零构建自己的个人AI助手“小龙虾“

本文系统介绍如何基于Spring Boot WebFlux、React 18和TypeScript,从零搭建一个本地化的个人AI助手管理平台——AgentScope Paw。项目支持多Agent创建与管理、SSE流式对话、工作区文件CRUD、技能市场、子智能体孵化、AI辅助起草Agent配置等核心功能,并深度集成钉钉、企业微信、飞书、GitHub等IM通道。

program哲学 1429

XML Schema(W3C)数据类型

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

cg_Amaz1ng的博客 3264

基于深度学习的行人车辆检测与计数系统(UI界面+YOLOv8/v7/v6/v5代码+训练数据集)

从YOLOv1到最新的YOLOv8,其网络结构、训练策略和损失函数不断优化,性能持续提升。image_path, _ = QFileDialog.getOpenFileName(self, "选择图片文件", "", "Image Files (*.jpg *.png *.jpeg *.bmp)")video_path, _ = QFileDialog.getOpenFileName(self, "选择视频文件", "", "Video Files (*.mp4 *.avi *.mov *.mkv)")

YOLO 227

使用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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

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

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

XML 入门 A- Z

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

bfox的专栏 210

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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、付费专栏及课程。

余额充值