使用W3C XML Schema(8)

【Python】调用微软文本转语音接口 微软文本转语音链接: https://azure.microsoft.com/zh-cn/services/cognitive-services/text-to-speech/ Python 代码: #! /usr/bin/env python3 # -*- coding: utf-8 -*- ### #Copyright (c) Microsoft Corporation #All rights reserved. #MIT License #Permission is hereby granted, 阅读详情

名称空间

在W3C XML Schema里的Namespaces 支持是灵活而简单的。它不但允许在实例文档(不像DTD)中使用任何前缀,而且允许你打开Schemas从已知或未知命名空间接受未知的元素和属性。

每个W3C XML Schema文档都通过targetNamespace 属性,绑定到一个特定的名称空间,或者缺少名称空间是因为缺少这样一个属性。每个我们想要定义的命名空间至少需要一个Schema文档(元素和属性没有名称空间也可以被定义)。

截至目前,我们忽略了targetNamespace这个属性,意思就是我们并没有使用名称空间。 要涉足命名空间,先让我们假设我们的例子属于一个简单的名称空间:

< book  isbn ="0836217462"  xmlns ="http://example.org/ns/books/" >  
.../... 
</ book >  

侵入性最小的方式,就是改写我们的schema,增加一些属性到xs:schema元素里面:

< xs:schema  targetNamespace ="http://example.org/ns/books/"  
xmlns:xs
="http://www.w3.org/2001/XMLSchema"  
xmlns:bk
="http://example.org/ns/books/"  
elementFormDefault
="qualified"  
attributeFormDefault
="unqualified" >  
.../... 
</ xs:schema >

名称空间的声明扮演着一个很重要的角色。首先(xmlns:xs=http://www.w3.org/2001/XMLSchema)说明下,我们不但选择使用前缀去标识元素以遵守W3C XML Schema的约定,而且我们在目前为止的所有例子中为W3C XML Schema预定义的数据类型都加上了xs前缀。要知道我们可以选择任何其他前缀代替xs。我们甚至可以在这个例子中使用http://www.w3.org/2001/XMLSchema 为我们默认的名称空间,我们本不会为W3C XML Schema元素或者数据类型增加前缀的。

既然我们工作于http://example.org/ns/books/名称空间,我们就用它定义(使用bk做前缀)。这意味着我们现在将要对引用加前缀使之成为“对象”(数据类型、元素、属性,……)属于bk:名称空间。再者,我们本可以选择任何的前缀来标识这个名称空间,或者甚至使用我们默认的名称空间(注意xs:unique, xs:key 以及xs:keyref中使用的 XPath表达式不使用默认名称空间)。

targetNamespace  属性允许你定义独立于名称空间的声明,它的名称空间在本schema中描述。如果你需要引用这个名称空间的对象,这是个很常见的例子,除了targetNamespace之外你还需要提供一个名称空间声明。

最后的两个属性(elementFormDefault 和attributeFormDefault)是在一个单一的schema中,W3C XML Schema提供的控制设施,无论属性和元素被默认为是否合法的(在一个名称空间内)。合法和非法之间的区别可以通过指定默认值显示,正如上面所述,而且当定义元素和属性时,加入一个form属性,其值为qualified或unqualified。 

但必须注意的是只有本地元素和属性可被指定为unqualified。所有全局定义的元素和属性必须总是合法(qualified)。

从外部名称空间导入定义

W3C XML Schema不像XSLT和XPath,在一些属性值中使用名称空间前缀来标识数据类型、元素、属性的名称空间。举例来说,我们已经在示例中通篇使用了这个特性来标识W3C XML Schema 的预定义数据类型。这种机制可以被扩展以从任何其他的名称空间导入定义并在我们的schema中进行复用。

通过三步流程可实现从其他名称空间复用定义。为了声明xml:lang这样的属性,即使对于XML 1.0名称空间这个过程也需要这样完成。首先,必须像往常一样定义名称空间。

< xs:schema  targetNamespace ="http://example.org/ns/books/"  
xmlns:xml
="http://www.w3.org/XML/1998/namespace"  
xmlns:bk
="http://example.org/ns/books/"  
xmlns:xs
="http://www.w3.org/2001/XMLSchema"  
elementFormDefault
="qualified"  
attributeFormDefault
="qualified" >  
.../... 
</ xs:schema >  

下一步,W3C XML Schema 需要知道符合该名称空间的schema所在位置。可以通过xs:import来实现。

< xs:import  namespace ="http://www.w3.org/XML/1998/namespace"  
schemaLocation
="myxml.xsd" />  

W3C XML Schema现在知道它应该从myxml.xsd尝试寻找任何属于该XML名称空间的引用。我们现在就可以使用外部定义了。

< xs:element  name ="title" >  
< xs:complexType >  
< xs:simpleContent >  
< xs:extension  base ="xs:string" >  
< xs:attribute  ref ="xml:lang" />  
</ xs:extension >  
</ xs:simpleContent >  
</ xs:complexType >  
</ xs:element >  

你可能感觉奇怪,为什么我们选择从XML名称空间引用xml:lang属性,而不是创建一个xml:lang,我们这样做是因为,引用一个属性(或元素)和引用一个数据类型在关系到名称空间时存在重大区别。

  • 引用一个元素或属性导入了全部内容包括名称和名称空间。
  • 引用一个数据类型仅仅导入其定义,而为你正定义的元素和属性命名,以及使用目标名称空间(如果你的属性或元素为unqualified的话则没有名称空间)的事都要留给你自己去做。

包含未知的元素

要完成这个关于名称空间的部分,我们需要知道我们的schema如何对未知元素开发,沮洳在介绍中约定的那样。这个特性是通过xs:any 和xs:anyAttribute来完成的,它允许分别的包含元素或属性。

举例来说,如果我们希望扩展我们的描述类型为任意的XHTML标签,我们可以这样声明:

< xs:complexType  name ="descType"  mixed ="true" >  
< xs:sequence >  
< xs:any  namespace ="http://www.w3.org/1999/xhtml"  
processContents
="skip"  minOccurs ="0"  
maxOccurs
="unbounded" />  
</ xs:sequence >  
</ xs:complexType >  

xs:anyAttribute 给予了属性相同的功能。

descType 类型现在和内容混合了,并且接受一个任意数字或http://www.w3.org/1999/xhtml 名称空间中的任何元素。processContents 属性设为了skip表示告知W3C XML Schema 处理器不进行校验那些本该尝试校验的元素。其他可能的值为,strict 要求校验这些元素,或者lax要求需要时才进行校验。namespace 属性接受一个空格分隔的URI列表,并且特殊的值##local(非合格元素)和##targetNamespace(目标名称空间) 可以包含在该列表中,##other(除了目标以外的其他名称空间) 和##any (任何名称空间)则可以替代这个URI列表。除了这些提到的值以外不需要任何其他值。

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

相关推荐

为什么使用 XML Schema?

XML Schema 是一种用于描述和验证 XML 文档结构和内容的语言。它提供了一种标准的方式来定义 XML 文档的合法构建块,包括元素、属性、数据类型和关系。XML Schema 定义了 XML 文档的“形状”和“内容”,确保 XML 文档遵循预定义的结构和规则。本文将探讨使用 XML Schema 的主要优势,以及它在不同场景中的应用。

csbysj2020的博客 466

SpringMVC解决Attribute "tx" bound to namespace "http://www.w3.org/2000/xmlns/" was already specified

问题很简单,就是在配置springMVC.xml的表头是重复了 其实就是这个配置已经配置过了,仔细一下,确实重复,删除一个,至于是要哪个,就看自己的配置内容 使用 xmlns:tx="http://www.springframework.org/schema/tx" ...

wise18146705004的博客 2175

ComfyUI破限版全中文AI绘画环境搭建与工作流实战指南

节点式工作流是AI绘画领域的核心技术架构,通过将图像生成过程拆分为可配置的模块化节点,实现了对Stable Diffusion模型的精细化控制。其技术原理基于数据流编程范式,每个节点负责特定功能处理,如文本编码、采样器配置和VAE解码等。这种设计在工程实践中的核心价值在于提供了可追溯、可复用的可视化工作流,特别适合需要参数调优和批量生产的商业场景。ComfyUI作为典型的节点式AI绘画工具,在破限版中针对中文用户优化了界面支持和显卡兼容性,显著降低了技术门槛。在实际应用中,结合ControlNet和LoRA

weixin_29038155的博客 447

XML Schema

W3C颁布的命名空间(NameSpace)标准中对命名空间的定义是: XML命名空间提供了一套简单的方法,将XML文档和URI引用标记的名称相结合,来限定其中的元素和属性名。首先,XML文档必须符合XML语法限制,术语称为“well-formed XML”其次,为了使XML表示的数据有一定含义,还需要根据应用为其定义语义上的限制,术语称为“validating XML”。-- 定义局部元素,使用ref关键字引用,并使用minOccurs和maxOccurs制定元素出现的最少和最多的次数-->

weixin_57638208的博客 820

【编号326】全国地灾数据全国25万多个地质灾害点空间分布数据

全国地质灾害点分布数据涵盖25万多个各类灾害点信息,为灾害防治提供重要依据。通过分析灾害分布规律,可识别高风险区,指导监测预警、应急避险和基础设施建设。多地成功案例(如湖北兴山崩塌避险、重庆长寿滑坡预警、湖南"挪床行动")证明,提前预警和科学防治能有效避免人员伤亡。云南省2024年通过预警体系成功避让31起灾害,保护1342人生命安全。这些实践表明,地质灾害防治需结合科技手段与群防体系,实现早预警、早处置。

千奇百怪无奇不有 1471

IEC61850 通信协议测试验证实战指南:从理论到实践

本文提供了一份全面的IEC61850通信协议测试验证实战指南,强调测试必须从理论走向工程实践。文章详细讲解了如何搭建测试环境,并深入剖析了MMS、GOOSE、SV三大核心协议的实战测试方法,旨在帮助工程师通过系统化的测试验证,确保电力自动化设备的互操作性与通信可靠性。

weixin_29204121的博客 170

spring-schema文件解析(-)

由于作者这方面也是新手,故而大神可以直接略过,权当自己留下的笔记,谬误之处勿喷~要学习spring schemas及其解析过程,我们应该首先:1. 熟悉XML/XHTML的基本指示2. w3school schema课程3. java及Spring熟练使用接下来正式开始首先来看一个spring-beans-4.3.xsd的文件主要内容:&lt;?xml version="1.0" encoding...

m0_38008272的博客 2229

Qt上位机实战:5步搞定STM32 IAP固件升级(附拖拽文件处理技巧)

本文详细介绍了如何使用Qt开发STM32 IAP固件升级上位机。通过五个核心步骤,包括理解IAP机制、搭建Qt环境、实现拖拽文件加载、封装串口通信以及设计可靠通信协议,帮助开发者快速构建一个稳定、易用且支持图形化操作的固件升级工具,显著提升嵌入式产品开发与维护效率。

ss78901的博客 1076

java w3c xml_使用W3C XML Schema

使用W3C XML SchemaAuthor: 姜晓东W3C XML Schema 定义语言是描述和约束XML文档内容的XML语言,W3C推荐使用W3C XML Schema。本文介绍了如何使用W3C XML Schema,还包括了对Schema数据类型和结构的完整参考。第一个Schema让我们从一个描述一本书的简单文档开始:BeingaDogIsaFull-TimeJobCharle...

weixin_33231055的博客 425

突破NER性能瓶颈:BERT与LLM协同的混合架构实践

性能卓越:在多个测试集上,F1分数比单一模型提升5-15%成本可控:相比纯LLM方案,成本降低60%以上易于落地:架构清晰,便于调试和优化这种"专才+通才"的组合思路可以扩展到其他NLP任务中,如关系抽取、事件提取、文本分类等。更精细的流水线优化多模型投票机制在线学习与自适应调整不追求单一模型的万能,而是通过精心设计的组合,让每个组件发挥其独特优势,最终实现系统性能的最优化。欢迎在评论区分享你在NER任务中的实践经验,或者对这个混合架构的改进建议!

Ven%的博客 1022

BOM 数据模型设计

字段名数据类型必填说明物料编码 (Part Number)字符串是唯一标识,主键。建议包含分类前缀(如STD-GEN-CUS-物料名称 (Part Name)字符串是版本 (Revision)字符串是如AB1.0,与编码组合构成唯一实例。状态 (Status)枚举是设计中(Draft)已发布(Released)已归档(Archived)已作废(Obsoleted)类型 (Type)枚举是专用件(Custom)借用件(Borrowed)通用件(Generic)标准件(Standard)

Davina_yu的博客 1756

`javax.xml.datatype` 是 Java 标准库中用于处理 XML Schema 定义的数据类型(如 `xs:date`, `xs:time`, `xs:dateTime`, `xs:d

`javax.xml.datatype` 是 Java 标准库中用于处理 XML Schema 定义的数据类型(如 `xs:date`, `xs:time`, `xs:dateTime`, `xs:duration` 等)的包,属于 JAXP(Java API for XML Processing)的一部分。它提供了一组抽象类和工厂类,用于在 Java 类型(如 `Calendar`, `BigInteger`, `Long`)与 XML Schema 类型之间进行安全、规范的双向转换,确保符合 W3C X

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

第4章:外包接单全攻略——Upwork/电鸭/猪八戒从0到第一单

> - 三个外包平台的详细对比(适合人群、抽成、防骗) > - 每个平台的Profile优化模板(可直接复制修改) > - 用AI写Proposal的3个Prompt模板(我实测回复率提升50%) > - 报价策略与防骗指南(附5个危险信号) > - 我的第一单复盘:从注册到收款的全过程(含聊天记录脱敏)

sfishfly的博客 574

Web.xml文件提示No grammar constraints (DTD or XML Schema) referenced in the document. 警告的解决方法

No grammar constraints (DTD or XML Schema) referenced in the document. 在web.xml头部信息中,添加以下内容即可解决问题 http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">

StevenXu的专栏 890

《拉依达的嵌入式\驱动面试宝典》—计算机硬件篇(一)

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 768

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

xml schema定义无限嵌套

1.需求: 有时候在写xml时,需要节点无限嵌套,例如:item标签中可以嵌套item标签,无限嵌套下去 2.xml shema文档可以像如下这样约束: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefau...

join_null的博客 1138

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

XML

1.1XML是什么 XML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言,很类似HTML。 可扩展 – 随便写 标记 – 标签 它被设计的宗旨描述数据,而非显示数据。 XML标签没有被预定义,需要用户自行定义标签。 XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前遵循的是W3C组织于2000年发布的XM...

weixin_40245787的博客 200

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java解析 xml schema_W3C XML Schema 教程

XML SCHEMA教程本教程是笔者学习W3C的《XML Schema Tutorial》的笔记。如果你对原教程感兴趣,可以浏览http://www.w3schools.com/schema/default.asp。XML Schema是W3C制定的基于XML格式的XML文档结构描述标准。作为一种文档描述语言,通常我们将其简写为XSD(XML Schema Define)。XSD作为DTD(文档类...

weixin_39838231的博客 924

W3C XML Schema 内建字符串类型比较(含schema及xml文件)

string ,字符串。   可以包含回车符,换行符,制表符.QName (qualified name),有前缀名称类型。   前缀和局部名称必须都是NCName类型,中间用冒号连接.normalizedString ,规范化字符串类型。   string中回车符、换行符、制表符将被去掉 。token ,记号字符串类型。   normalizedString中头、尾及...

ReeBoo 178

使用W3C XML Schema(1)

W3C XML Schema 定义语言是描述和约束XML文档内容的XML语言,W3C推荐使用W3C XML Schema。本文介绍了如何使用W3C XML Schema,还包括了对Schema数据类型和结构的完整参考。第一个Schema让我们从一个描述一本书的简单文档开始:xml version="1.0" encoding="UTF-8"?>book isbn="083621

未来之路 2874

html role w3c,W3C XML Specifications

W3C XML SpecificationsStylus Studio is the first and only XML IDE to provide comprehensive and innovative development support for all of major W3C XML technologies.Stylus Studio is pleased to provide...

weixin_34061121的博客 205

XML Schema快速入门(一)如何使用

什么是 XML Schema? Schema,即XML Schema,XSD (XML Schema Definition)是W3C于2001年5月发布的推荐标准,指出如何形式描述XML文档的元素。XSD是许多XML Schema 语言中的一支。XSD是首先分离于XML本身的schema语言,故获取W3C的推荐地位。 XML Schema 是基于 XML 的 DTD 替代者。 XML Sche...

语雀同名:犬豪 yuque.com/qhao 3803

XML Schema学习小结

因为学习Sematic Web的原因接触RDF,RDF的学习又涉及到了XML Schema,因此这里复习了一下XML Schema。 -- 引入目的是克服XML DTD的局限性,并且XML Schema是W3C的正式标准 特点: 1)XML Schema本身也是一种XML文档 2)由于特点(1),XML Schema可以用DOM\SAX\JDOM等XML API来解析其中的内容 3)

Well's Column 1587
上一篇: 使用W3C XML Schema(7)
下一篇: 使用W3C XML Schema(9)(全文完)
iStringTheory
博客等级 码龄25年 414粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值