使用W3C XML Schema(7)

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

创建可用——并且可复用的Schema

或许编写可复用的schema的第一步是文档化它们。W3C XML Schema 提供了一个XML注释(面向人的)的替代品,以及处理说明(面向机器),可能为支持工具更易于处理。

人类可读的文档可以用xs:documentation元素定义,而针对应用程序则必须包括在xs:appinfo元素内。它们都必须包含在xs:annotation元素内,并且接受可选的xml:lang以及source属性和任意的内容类型。source属性是一个URI引用,可被用来说明说明注释文档的目的或应用程序信息。

xs:annotation元素可以被添加到大多数schema结构的开始处,就如下面的例子那样。appinfo部分演示了如何自定义名称空间和schema可能允许在schema内部一个元素绑定到一个Java类。

<xs:element name="book"> 
<xs:annotation> 
<xs:documentation xml:lang="en"> 
Top level element. 
</xs:documentation> 
<xs:documentation xml:lang="fr"> 
Element racine. 
</xs:documentation> 
<xs:appinfo source="http://example.com/foo/"> 
<bind xmlns="http://example.com/bar/"> 
<class name="Book"/> 
</bind> 
</xs:appinfo> 
</xs:annotation>

从多个文件组合Schema

对那些希望将一个schema定义在多个文档的人来说——要么切分一个大的schema,要么使用schema代码段的库——W3C XML Schema 提供两种机制来包含外部的schema。

第一种包含机制,xs:include类似于复制并粘贴包含的schema的定义。它是一个包含文件并且它不允许覆盖被包含schema的定义。它可以这样使用:

<xs:include schemaLocation="character.xsd"/>

第二种包含机制,xs:redefine,类似于xs:include,除了它会要求你从包含的schema中重新定义声明。

<xs:redefine schemaLocation="character12.xsd"> 
<xs:simpleType name="nameType"> 
<xs:restriction base="xs:string"> 
<xs:maxLength value="40"/> 
</xs:restriction> 
</xs:simpleType> 
</xs:redefine> 

注意,被重定义的声明必须放在xs:redefine元素中。

我们已经看到了很多特性,它们可以被一起使用,通过xs:include和xs:redefine去创建schema的库。我们看到了如何引用之前定义好的元素,如何通过派生定义数据类型并使用它们,如何定义并使用属性组,我们还看到元素好对象的对比、数据类型和类的对比。这里还有另外一个从面向对象设计借过来的特性,就是可以创建可复用的schema。

抽象类型

这些特性中的第一个,从面向对象设计演变而来的,是替代组。不像我们迄今看到的那些特性,一个替代组不是通过W3C XML Schema元素明确定义的,而是通过引用一个公用的元素(称为head)使用substitutionGroup。 

头元素并不包含任何特定的声明,但必须为全局的。所有的元素在一个替代组内需要有一个类型,要么和头元素同一个类型或者可以从它派生。那么,他们都可以代替头元素使用。在下面的例子中,surname元素可以在name元素被定义的任何地方使用。

<xs:element name="name" type="xs:string"/> 
<xs:element name="surname" type="xs:string" 
substitutionGroup
="name" /> 

现在,我们也可以定义一个一般的name-elt 元素,它为一个替代组的头元素,其不应直接被使用,而应该使用其的一个派生形式。这是通过声明该元素为抽象的实现的,类似于面向对象语言中的一个抽象类。下面的例子定义了name-elt为抽象元素,它应该被在引用的地方使用name或surname替代。

<xs:element name="name-elt" type="xs:string" abstract="true"/> 
<xs:element name="name" type="xs:string" 
substitutionGroup
="name-elt"/> 
<xs:element name="surname" type="xs:string" 
substitutionGroup
="name-elt"/>

最终类型

我们可以,或者另一个方面,希望控制数据类型上的派生。 W3C XML Schema 通过xs:complexType、xs:simpleType或者xs:element上的final属性支持这点。这个属性的值范围为:restriction, extension 以及#al,通过约束现在扩展或派生。下面的片段代码,举例说明,禁止从characterType 复杂类型的任何派生。

<xs:complexType name="characterType" final="#all"> 
<xs:sequence> 
<xs:element name="name" type="nameType"/> 
<xs:element name="since" type="sinceType"/> 
<xs:element name="qualification" type="descType"/> 
</xs:sequence> 
</xs:complexType> 

除final外,一个更细粒度的机制是控制简单类型的派生,作用在每个切面(facet)上。这里,这个属性叫做fixed,当它的值设为true的时候,切面(facet)不能进行修改(但其他的切换仍可被增加和修改)。下面的例子防止类型nameType被重定义:

<xs:simpleType name="nameType"> 
<xs:restriction base="xs:string"> 
<xs:maxLength value="32" fixed="true"/> 
</xs:restriction> 
</xs:simpleType>  
 
为什么使用 XML Schema? XML Schema 是一种用于描述和验证 XML 文档结构和内容的语言。它提供了一种标准的方式来定义 XML 文档的合法构建块,包括元素、属性、数据类型和关系。XML Schema 定义了 XML 文档的“形状”和“内容”,确保 XML 文档遵循预定义的结构和规则。本文将探讨使用 XML Schema 的主要优势,以及它在不同场景中的应用。 阅读详情

相关推荐

从圆形到椭圆:CenterNet中高斯热图半径的自适应优化策略

本文深入探讨了CenterNet目标检测模型中高斯热图生成策略的优化,针对传统圆形高斯核在处理长宽比差异大目标时的局限性,提出了自适应椭圆高斯核的解决方案。通过数学推导和代码实战,详细阐述了如何根据目标边界框尺寸动态计算椭圆长短轴半径,生成更贴合目标几何形状的热图监督信号,从而有效提升模型,尤其是对无人机、车辆等不规则目标的定位精度。

alice7model的博客 985

W3C XML Schema (XSD)

1.XML Schema 文件也是一个XML格式的文档,用来对特定的XML文档进行验证 2.一个被模式文档(Schema)描述的XML文档,称为 instance document (实例文档) 如果一个XML文档满足模式文档指定的所有限制,则这个XML文档被认为是 schema-valid 的 3.一个xml文档和模式文档进行关联,有几种方式:1)使用 xsi:schemaLocation...

weixin_30609331的博客 186

YOLOv5实战:无人机巡检图片差异对比与违建标记(附完整代码)

本文详细介绍了如何利用YOLOv5目标检测技术实现无人机巡检图片差异对比与违建标记。通过图像对齐、目标检测、差异分析和可视化标记四个步骤,构建高效的违建识别系统,显著提升城市管理效率。文章包含完整代码实现和性能优化技巧,为计算机视觉在无人机巡检中的应用提供实用指南。

weixin_42535720的博客 282

XML Schema

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

weixin_57638208的博客 820

SOLIDWORKS Flow Simulation 颗粒分离器仿真:从流场分析到分离效率优化

计算流体力学(CFD)是研究流体流动、传热及相关物理现象的核心工具,其基本原理是通过数值方法求解控制流体运动的纳维-斯托克斯方程。在工程实践中,CFD的价值在于能够对复杂流动进行高保真度仿真,从而在产品设计阶段预测性能、优化结构,显著降低物理样机的试制成本和周期。颗粒分离器作为环保、化工、矿业等领域的关键设备,其设计核心在于平衡分离效率与压力损失。借助SOLIDWORKS内嵌的Flow Simulation模块,工程师可以高效地执行流体仿真,特别是对涉及离散相的颗粒运动进行轨迹追踪和效率统计。该技术方案通过

weixin_28709649的博客 326

mongoDB 数据莫名其妙的没了

问题 之前没有接触过mongoDB,然后接手一个项目使用的是MongoDB,我就跟着网上的教程搭建一个MongoDB的服务,并运行起来。 一开始没有啥问题,成功的把服务与MongoDB都启动以来,运行也没有问题。但是过了几天,我再次打开时发现,以前的数据神奇的消失了。我还在想,是有什么定时清除的么,还是什么原因导致崩了然后数据就被清理了。 查找原因 第一次遇到我没有在意,重启了一下MongoDB,...

技术熊的博客小窝 1万+

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

【任何电机可使用的七段式s曲线-----包括matlab代码和simulink仿真】

S形加加速(T1)→>匀加速(T2)→减加速(T3)→>匀速(T4 )>加减速(T5)>匀减速(T6)-→>减减速(T7)

weixin_44312889的博客 6310

xml schema 详解

1. xml schema 是定义 xml 文件的合法构建模块,可以理解为是一种编写 xsd 或 xml 文件的语法。使用 schema 语法编写的文件后缀名可以是 .xsd 或 .xml。 2. xsd(xml schema definition) 文件,后缀名 .xsd,定义 xml 文件中可以出现哪些元素, 属性, 元素之间的关系, 顺序, 元素的数量, 元素或属性的类型和值的范围等,是对 xml 文件的一种约束方式。xsd 文件也使用 schema 语法编写。

JellyfishMIX 的博客 1626

YOLO26涨点改进 | 独家创新,特殊场景检测篇 | TGRS 2025 | 引入FAENet特征自适应增强网络,专注于恶劣天气条件下的目标检测(低光场景、雾天场景、雨雪场景、复杂环境等)即插即用

🔥本文提出了一种名为FAENet的特征自适应增强网络,可有效提升YOLO26在恶劣天气条件下的目标检测性能。FAENet通过拉普拉斯金字塔分解思想,将输入特征分为低频和高频两部分进行针对性增强:低频分支强化全局轮廓,高频分支增强边缘纹理细节。该模块设计轻量、可端到端训练,在不改变原始图像分布的前提下,显著缓解雾霾、低照度等复杂环境造成的特征退化问题。实验表明,该方法在多个恶劣天气数据集上超越了当前最优检测器,同时保持了轻量级和高速度特性。

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

由ip地址和子网掩码求网络号、主机号、广播地址(超详细)

1、用二进制数表示IP地址   在进行计算之前,我们首先要学会十进制的IP地址怎么转换为二进制的IP地址。   给出一个例子: 十进制:172.16.25.3 二进制:10101100.00010000.00011001.00000011 1、如果两台主机的网络号相同,我们就说它们是同一网段 2、主机号的意义 - 1)主机号部分全变成1,即为该网段的广播地址 - 2)主机号部分全变成0,即为该网段的网路地址(网络号) 3、如果主机号部分为x位,则该网络能容纳最大主机数为: 2的x次方-2。减2

爱吃雪糕的小布丁的博客 9万+

W3C XML Schema 教程 (三)

6          复杂元素描述 复杂元素指包含属性或子元素的XML元素,如:”Li” sex=”男”>,主要包括下列四类: l         空元素:只包含属性的元素。如:”li” />; l         只包含属性与子元素的元素。如: ”realname”> Jack Tom        l         只包含属性与text的元素。如: ”firstname”>

xuxiu_1972的专栏 810

2024-12月js逆向案例-sensor-data之vmp字段之akamai_2/3.0-(下)

akamai2/3的vmp字段逆向分析

十一姐的博客 3147

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

假人有限元模型

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

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的博客 925

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

使用W3C XML Schema(8)

名称空间在W3C XML Schema里的Namespaces 支持是灵活而简单的。它不但允许在实例文档(不像DTD)中使用任何前缀,而且允许你打开Schemas从已知或未知命名空间接受未知的元素和属性。每个W3C XML Schema文档都通过targetNamespace 属性,绑定到一个特定的名称空间,或者缺少名称空间是因为缺少这样一个属性。每个我们想要定义的命名空间至少需要一个Sc

未来之路 4483

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

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与JSON Schema

XML Schema,XSD (XML Schema Definition)是W3C于2001年5月发布的推荐标准,指出如何形式描述XML文档的元素。XSD是许多XML Schema 语言中的一支。XSD是首先分离于XML本身的schema语言,故获取W3C的推荐地位。 像所有XML Schema 语言一样,XSD用来描述一组规则──一个XML文件必须遵守这些规则,才能根据该schema‘合法(Valid)’。 然而,与其他XML Schema 语言不同,XSD意图设计为在确认一个文档的有效性时,将会产生满

baidu_41761770的博客 1065

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

使用W3C XML Schema(6)

约束UniqueW3C XML Schema 提供了几种灵活的基于XPath的特性,其描述了唯一性约束和一致性引用约束。首先,一个简单的唯一性声明,使用xs:unique元素进行声明。下面的声明建立在我们的book元素的名称必须唯一的前提下:xs:unique name="charName"> xs:selector xpath="character"/> xs:field xpa

未来之路 2032

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(6)
下一篇: 使用W3C XML Schema(8)
iStringTheory
博客等级 码龄25年 414粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值