XML -入门

XML(Extensible Markup Language):可扩展的标记语言

作用:提供了一套跨平台、跨网络、跨程序语言的数据描述方式

目的:描述与表达数据,使数据 在不同设备、程序之间实现数据互通

【扩展】发展史:

1969:GML 通用标记语言

1985:SGML 标准通用标记语言

1993:HTML 超文本标记语言

1998:XML 可扩展标记语言

1999:XML -> XHTML 可扩展超文本标记语言

……

XML -> SVG:可缩放矢量图形语言

XML -> SMIL:同步多媒体综合语言

XML -> HDML:手持设备标记语言

XML -> OEB:开放电子结构规范

……

分类:

  • 格式不良好的XML文档
  • 格式良好的XML文档
    • 有效XML文档

符合XML语法规范(符合规则定义)的是良好的XML文档,符合DTD等约束文件约束的是有效XML文档

XML文档组成

  • XML声明

    <?xml version="1.0|1.1"[ encoding="编码方式"] [standalone=”yes|no”]?>

    [属性说明]

    • version: 必需包含该属性,指明以下文档遵循哪个版本的XML规范。该属性必须放在其它属性之前,属性的合法值为1.0或1.1。

    • encoding:该属性可以被省略,指明文档中要采用的字符编码方式。当省略该属性时,属性的默认值为utf-8。

    • standalone:该属性可以被省略,指定该XML文档是否和一个外部文档配套使用。该属性为yes是说明当前XML文档是一个独立的XML文档,与外部文件无关联。否则相反。当省略该属性时,属性的默认值为yes。

    <?xml version="1.0" encoding="utf-8"?>

    version必须填写,``encoding`可以不填写

  • 文档类型声明

  • 元素

  • 注释

    • <!-- -->
    • 注释不能出现在XML文档声明之前,注释内容不能出现“--”

  • 处理指令

    • 处理指令(Processing Instructions,简称PIs)允许文档中包含由应用程序来处理的指令。在XML文档中,有可能会包含一些非XML格式的数据,XML处理器无法处理这些数据,我们就可以通过处理指令来通知其它应用程序来处理这些数据。

      处理指令(PI)的语法和XML声明类似,以“<?”开始并以“?>”结束。常见的使用样式表单的处理指令如下所示。

      <?xml-stylesheet href="hello.css" type="text/css"?>

      <?xml-stylesheet href="hello.xsl" type="text/xsl"?>

XML文档规则

1.【强制】必须有XML声明语句

2.【重要】XML标记大小写敏感

标记名字应该具有描述性,单词与单词之间可以使用下划线连接,但名称应该尽可能简洁;

在标记名称中间尽量避免使用“-”、“.”、“:”容易造成歧义;

非英语的字母比如éòá也是合法的XML元素名,但要避免使用,因为某些软件不支持这些特殊字符。

3.【强制】属性值必须使用引号""''

4.【强制】XML标记必须有对应的结束标记(例如:<tag>str</tag>),如果是空标记,也必须关闭(例如<tag/>)

5.【重要】所有XML元素必须合理包含

6.所有标记以外的空白都会被保留(空白包括空格、制表符、空行)

7.【强制】特殊字符必须用相应的符号来代替

8.【强制】一个XML文档有且仅有一对根标签

XML元素

  • 空元素
  • 非空元素

特殊字符数据引用

字符 字符引用(十进制) 字符引用(十六进制) 预定义实体引用
< < < &lt;
> > > &gt;
" " " &quot;
' ' ' &apos;
& &#28; & &amp;

CDATA段

格式:<![CDATA["字符串"]]>,里面的“字符串”是纯字符,但是不能包含]]>

空白处理

在XML文档中,可以在元素中使用一个特殊的属性xml:space,来通知应用程序保留此元素中的空白。xml:space 属性接受两个值。

default :此值允许应用程序根据需要处理空白。 如果不包含 xml:space 属性,结果与使用 default 值相同。

preserve :此值表示应用程序按原样保留空白,空白可能有含义。

【XML编程与WEB服务】XML入门的更多相关文章

  1. Java Web Services (1) - 第1章 Web服务快速入门

    SCRIPTS_DIR=/Users/liuzhaofu/opus-dev/product/tools/devPRODUCT_DIR=/Users/liuzhaofu/opus-dev/product ...

  2. Reporting Service编程----访问Web服务

    将报表服务器 Web 服务的引用添加到项目中后,下一步是创建 Web 服务代理类的实例. 然后,您可以通过调用代理类中的方法来访问 Web 服务的方法. 当你的应用程序调用这些方法时,代理类生成的代码 ...

  3. XML编程与应用-读取XML

    实例:使用XmlTextReader类的对象读取XML文档 代码如下 using System; using System.Collections.Generic; using System.Linq ...

  4. JAVA与.NET的相互调用——通过Web服务实现相互调用

    JAVA与.NET是现今世界竞争激烈的两大开发媒体,两者语言有很多相似的地方.而在很多大型的开发项目里面,往往需要使用两种语言进行集成开发.而很多的开发人员都会偏向于其中一种语言,在使用集成开发的时候 ...

  5. PHP 自学之路-----XML编程(Xpath技术,simpleXml技术)基础入门

    XPAth技术 XPath的设计的核心思想,可以通过xpath迅速简介的定位到你希望查找的节点.主要目的是描述节点相对其他节点的位置,可以取得所有符合条件的节点,成为[位置路径]. Xapth主要用来 ...

  6. Web 服务编程,REST 与 SOAP(转)

    原文地址:Web 服务编程,REST 与 SOAP REST 简介 在开始我们的正式讨论之前,让我们简单看一下 REST 的定义. REST(Representational State Transf ...

  7. Azure机器学习入门(四)模型发布为Web服务

    接Azure机器学习(三)创建Azure机器学习实验,下一步便是真正地将Azure机器学习的预测模型发布为Web服务.要启用Web服务发布任务,首先点击底端导航栏的运行即"Run" ...

  8. WCF入门(三)---WCF与Web服务/Web Service

    下面列出了WCF和Web服务之间存在一些重大差异. 属性:WCF服务是通过定义ServiceContract和OperationContract属性,而在Web服务,WebService和WebMet ...

  9. 【Java】Web 服务编程技巧与窍门: 在 UDDI 注册中心为 Web 服务注册开发 UDDI Java 应用程序

    本技巧建立了一个使用统一描述.发现和集成 (Universal Description, Discovery, and Integration,UDDI) 来注册应用程序级消费的 Web 服务实例.作 ...

  10. Xamarin.Android 入门实例(2)之实现WCF 寄宿于IIS 的Web服务提供

    1.WCF 契约 ICalculator.cs using System.ServiceModel; namespace Contracts { [ServiceContract] public in ...

随机推荐

  1. C# Webapi Filter 过滤器 - 生命周期钩子函数 - Action Filter 基础

    ACTION Filter IAsyncACtionFilter 接口 : 1.注入ActionFilter // 注册过滤器 builder.Services.Configure<MvcOpt ...

  2. manim边做边学--有向图

    有向图和上一篇介绍的无向图基本一样,唯一的区别在于有向图的边有方向性,它表示的是顶点之间的单向或依赖关系. 有向图G一般表示为:G=<V,E>.和无向图一样,V是顶点集合,E是边的集合. ...

  3. nicegui太香了,跨平台开发和跨平台运行--使用Python+nicegui实现系统布局界面的开发

    在现今国产化浪潮的驱动下,跨平台或者缩小范围说基于国产化Linux或者基于国产鸿蒙系统的开发才是未来的趋势了,风口浪尖上,我们开发人员也只能顺势而为,本篇随笔介绍在Python开发中,使用使用Pyth ...

  4. 某制造企业基于 KubeSphere 的云原生实践

    背景介绍 随着业务升级改造与软件产品专案的增多,常规的物理机和虚拟机方式逐渐暴露出一些问题: 大量服务部署在虚拟机上,资源预估和硬件浪费较大: 大量服务部署在虚拟机上,部署时间和难度较大,自动化程度较 ...

  5. KubeSphere 使用 HTTPS 协议集成 Harbor 镜像仓库指南

    作者:申红磊,青云科技容器解决方案架构师,开源项目爱好者,KubeSphere Member. 上面两篇文章讲了如何部署 HTTPS Harbor 和对接 HTTP 的 Harbor 镜像仓库:接下来 ...

  6. C语言之声明

    C语言之声明 1.声明与定义 声明语法 说明符(说明类型或修改缺省属性) 声明表达式列表 说明符 类型说明:int, float 存储属性:static,auto 类型限定:const, volati ...

  7. Kafka社区KIP-500中文译文(去除ZooKeeper)

    原文链接:https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Mana ...

  8. Matlab矩阵运算的硬件资源分析

    在用Matlab创建矩阵并计算矩阵乘法运算时,要注意计算机的可用内存大小(空间资源)和CPU性能(影响所用计算时间). 例如我们做以下测试:n为qubit的数目,那么一个矩阵Matrix_A=rand ...

  9. Flink CDC 实时同步 MySQL

    Flink CDC 系列文章 Flink CDC 实时同步 MySQL Flink CDC 实时同步 Oracle 准备工作 MySQL 数据库(version: 5.7.25),注意,MySQL 数 ...

  10. Java并发显式锁和显式条件队列

    一 显式锁 在类中利用synchronized修饰的方法或者this代码块,均使用的是类的实例锁或者类的锁.这些锁都称为内置锁. 可以利用显式锁进行协调对象的访问.即ReentrantLock.这是一 ...