在XML里的XSD和DTD以及standalone的使用

有关XML结构中的XSD和DTD以及standalone的使用

XmlDeclaration declare= document.CreateXmlDeclaration("1.0", "utf-8", "yes"); yes为standalone的值,

XML中声明中有个standalone

standalone  用来表示该文件是否呼叫其它外部的文件。若值是 ”yes” 表示没有呼叫外部文件,若值是 ”no” 则表示有呼叫外部文件。默认值是 “yes”。

这里所指的外部文件其实就是查检XML是不是有效的约束文件,或是DTD或是Schema,那这两者又有什么区别呢?

尽管XML1.0提供了一种机制,即文档类型定义(DTD)来规范XML的格式规则。但是它天生存在一些缺点,比如,它采用了非XML的语法规则、不支持更多的数据类型、扩展性

差等,为了克服这些缺点,XML Schema 出现了。W3C推荐在XML中使用XML Schema来代替DTD。

    XML Schema(模式) 跟DTD一样,也用于定义 XML 文档的约束。但它与DTD明显不同的是,XML Schema遵循XML语法规则,更好地支持数据类型以及命名空间。

W3C称:XML Schema is an XML based alternative to DTD。模式在单独的文件中定义,通常扩展名为 .xsd。每个模式定义都有一个根元素 schema,该元素属于名称空

间。schema 元素可以包含可选的属性。

    比如:

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

    这表示模式中使用的元素来自名称空间。

    XML 文件使用 schema 名称空间中的 schemaLocation 属性链接到对应的模式。使用 schemaLocation 属性必须定义 schema 名称空间。

所有这些定义都出现在 XML 文档的根元素中。

    语法如下:

    <root_element  schema_namespace_definition  schema_location_definition>

    下面是一个例子:

    <Books  xmlns:xs=" Books.xsd">

    先来看看一个XML文件示例(message.xml),分别用DTD和XML Schema 描述这个文件,看看它们之间的区别:

    1、使用DTD:

  1. <?xml version="1.0" standalone="yes"?>
  2. <!DOCTYPE message [
  3. <!ELEMENT message (to,from,body)>
  4. <!ELEMENT to(#PCDATA)>
  5. <!ELEMENT from (#PCDATA)>
  6. <!ELEMENT body (#PCDATA)>
  7. ] >

   2、message的DTD结构定义:

  1. <message>
  2. <to>rose</to>
  3. <from>alex</from>
  4. <body>Hi,My Girl!</body>
  5. </message>

   3、使用XML Schema :

    message.xml:

  1.     <?xml version="1.0" standalone="no"? >
  2.     <message xmlns=http://www.example.com xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=" message.xsd">
  3.     <to>Rose</to>
  4.     <from>Alex</from>
  5.     <body>Hi,My Girl!</body>
  6.     </message>

 

   4、message的xsd XML Schema结构定义:    

   message.xsd:

  1.     <?xml version="1.0"?>
  2.     <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.example.com xmlns="" elementFormDefault="qualified">
  3.     <xs:element name="message">
  4.     <xs:complexType>
  5.     <xs:sequence>
  6.     <xs:element name="to" type="xs:string"/>
  7.     <xs:element name="from" type="xs:string"/>
  8.     <xs:element name="body" type="xs:string"/>
  9.     </xs:sequence>
  10.     </xs:complexType>
  11.     </xs:element>
  12.     </xs:schema>

转载于:https://www.cnblogs.com/1175429393wljblog/p/5558940.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490565.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab图像边缘检测分析

更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 所谓边缘是指其周围像素灰度有变化的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。物体的边缘是由灰度不连续所反映的。基于边缘的…

python可以实现哪些功能_Python中实现机器学习功能的四种方法介绍

本篇文章给大家带来的内容是关于Python中实现机器学习功能的四种方法介绍&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。 在本文中&#xff0c;我们将介绍从数据集中选择要素的不同方法; 并使用Scikit-learn&#xff08;skl…

Nature子刊批判人工神经网络:先天结构比后天训练更重要,应该借鉴动物大脑...

来源&#xff1a;凹非寺人工神经网络可以从动物大脑中学到什么&#xff1f;最新一期Nature子刊上&#xff0c;就刊登了这样一篇文章。美国冷泉港实验室的神经科学家Anthony M. Zador&#xff0c;对当下人工神经网络的研究思路进行了深刻反思与批判&#xff1a;大多数动物行为不…

C++初始化vector<vector<int>>

假设dps是一个mn维的vector&#xff0c;则初始化dps为全零的方法为&#xff1a; vector<vector<int>> dps(m, vector<int>(n,0));

matlab的傅里叶变换

更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 图像变换&#xff1a; 更多MATLAB图像处理视频请点击 http://study.163.com/course/courseMain.htm?courseId1003594013 在 MATLAB 中&#xff0c;一般用二元函数…

python在另一个函数中使用其他函数的变量_在另一个函数中访问函数的变量,如function() . var in python...

我在寻找一种正确的方法来访问另一个函数中的函数变量时遇到了一些问题 . 我正在制作远程操作类工具&#xff0c;因此我需要处理接收的命令[如exit或nircmdc.exe或telnet等] . 下面的代码不完整&#xff0c;但它是核心&#xff1a; def regular(): global data datac.recv(1024…

笔记一 Redis基础

在cmd 命令中运行redis 运行redis命令 &#xff1a;redis-cli Reids数据结构初探 数据结构有五种 string(字符串)、 list(列表)、set&#xff08;集合&#xff09;、hash&#xff08;散列&#xff09;、zset(有序集合) redis各类型的简单介绍 和最基础的命令 1.string&a…

C++获取指向二维数组的首元素指针

假设一个二维数组int a[][4] { { 3, 2, 8, 9 }, { 2, 4, 9, 12 }, { 4, 7, 10, 13 }, { 6, 8, 11, 15 } };&#xff0c;获取指向其首个元素&#xff08;即3&#xff09;的指针方法为&#xff1a; int*pa[0]&a[0][0]*a; 说明&#xff1a; &#xff08;1&#xff09;二维…

matlab的四维图像数据可视化

1.颜色来表示第四维 前面已经学了三维图形可视化&#xff0c;所谓三维就是指x轴&#xff0c;y轴&#xff0c;z轴组成了我们的三维&#xff0c;那么第四维用什么来表示呢&#xff0c;我们这里要用颜色来表示第四维&#xff0c;所谓四维图形可视化就是在三维图形可视化的基础上&…

Mybatis 入门之resultMap与resultType讲解实例

resultMap&#xff1a;适合使用返回值是自定义实体类的情况 resultType&#xff1a;适合使用返回值得数据类型是非自定义的&#xff0c;即jdk的提供的类型 resultMap &#xff1a; type&#xff1a;映射实体类的数据类型 id&#xff1a;resultMap的唯一标识 column:库表的字段…

全球半导体产业60年兴衰启示录!

本文来自华泰证券&#xff0c;研究员张馨元、钱海、陈莉敏&#xff0c;感谢分享&#xff01;科技是当前行业配置不能忽视的主线&#xff0c;我们在今年 5 月 10 日发布的中期策略报告《无科技不牛市&#xff0c;以时间换空间》中提出&#xff0c;5G 时代物联网技术革命带来的是…

手机上python编程工具3和3h有区别吗_Python3.5内置模块之time与datetime模块用法实例分析...

本文实例讲述了Python3.5内置模块之time与datetime模块用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 1、模块的分类 a、标准库&#xff08;Python自带&#xff09;&#xff1a;sys、os模块 b、开源模块&#xff08;第三方模块&#xff09; c、自定义模块 2、内…

c++ string后面会添加‘\0‘

string类后面会添加\0&#xff0c;但这个\0不算入length里面 以一个例子就能说明&#xff1a; int main() {string s "hhh";cout << (s[3] \0)<<endl;cout << s.length() << endl;return 0; } 输出&#xff1a; 1 3

在visual studio code中配置python以及解决中文乱码问题

安装好 visual stuido code &#xff08;下面简称 “ VSC ”&#xff09;后&#xff0c;要想使用它运行调试 python 代码还需要做一些工作以解决下列问题&#xff1a; 搭建 python 环境print 打印中文出现乱码一、搭建 python 环境 在 VSC 中点击 F1 键&#xff0c;弹出控制台&…

华为加码布局 VR/AR趁势启航

来源&#xff1a;VR每日必看乘5G东风&#xff0c;VR/AR空间打开。随着5G的到来&#xff0c;5G高速和超低时延的特性将完美应对VR/AR发展的短板&#xff0c;商用牌照的发放将带领5G逐渐进入放量阶段&#xff0c;内外巨头均已开始大力布局。分析人士认为&#xff1a;第一阶段场景…

linux系列之常用运维命令整理笔录

本博客记录工作中需要的linux运维命令&#xff0c;大学时候开始接触linux&#xff0c;会一些基本操作&#xff0c;可是都没有整理起来&#xff0c;加上是做开发&#xff0c;不做运维&#xff0c;有些命令忘记了&#xff0c;所以现在整理成博客&#xff0c;当然vi&#xff0c;文…

C++ 传递字符串数组给函数参数

C 传数组给一个函数&#xff0c;数组类型自动转换为指针类型&#xff0c;因而传的实际是地址。 对于传入字符串数组同理&#xff0c;所以如果在函数中对传入的字符串数组进行改变&#xff0c;函数外的字符串数组也会同时改变 举个简单的例子&#xff1a; void change(char s…

Android高德地图自定义Markers的例子

下文为各位重点介绍关于Android高德地图自定义Markers的例子&#xff0c;希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法。 之前的博客里说了地图的嵌入和定位&#xff0c;今天就说说在地图上显示一些我们想要的。在地图中有自带的Markers&#xff08;标记&a…

javaweb教务管理系统_基于Java web的教务管理系统

源码编号&#xff1a;B-E00033 点击查看(分类规则)项目类型&#xff1a;Java EE项目(非开源)项目名称&#xff1a;基于Java web的教务管理系统(TeachingSystem)当前版本&#xff1a;V1.0.1版本难度等级&#xff1a;✩✩复杂程度&#xff1a;✩✩ 点击查看难度等级用户类型&…

Science揭秘:为什么“好记性不如烂笔头”?

来源&#xff1a;中国生物技术网你还能记起你小学班长的名字吗&#xff1f;但我相信你肯定能记得同桌的名字&#xff0c;和与其共同经历的种种。但要再问你昨天新来同事的名字&#xff0c;你是否可以不假思索的回答出来&#xff1f;是不是有点儿困难&#xff1f;那为什么你能脱…