惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Forbes - Security
Forbes - Security
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
W
WeLiveSecurity
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
News and Events Feed by Topic
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
Engineering at Meta
Engineering at Meta
PCI Perspectives
PCI Perspectives
Martin Fowler
Martin Fowler
T
The Exploit Database - CXSecurity.com
F
Full Disclosure
WordPress大学
WordPress大学
S
Security Affairs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
SegmentFault 最新的问题
P
Privacy International News Feed
IT之家
IT之家
M
MIT News - Artificial intelligence
G
GRAHAM CLULEY
Hacker News: Ask HN
Hacker News: Ask HN
D
DataBreaches.Net
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Check Point Blog
美团技术团队
Security Latest
Security Latest
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
H
Help Net Security
宝玉的分享
宝玉的分享
The Hacker News
The Hacker News
The Last Watchdog
The Last Watchdog
The Cloudflare Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
I
Intezer
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AI
AI
I
InfoQ
N
News | PayPal Newsroom
TaoSecurity Blog
TaoSecurity Blog

f2h2h1's blog

使用yii3实现一个微框架 claw养殖技术 计算机网络基础知识 定时任务 ACME的使用经验 magento2加上varnish缓存 开发Magento2的模块 在magento2中使用persisted-query socket编程 一些开发笔记 一段CSDN文章主要内容的油猴脚本 电子邮件的不完整总结 git的笔记 在Windows下配置PHP服务器 终端,控制台和外壳 PHP各种运行方式的不完整总结 把网页导出成PDF 和颜色相关的笔记 HTTP认证方式的不完整总结 SEO的经验 密码学入门简明指南 文件的上传和下载 用纯CSS3实现的滑动按钮 在VSCode里调试PHP Linux的GUI 关于字符编码的一些坑 nc的使用和原理 在Windows下安装Magento2 对JS原型链的理解 使用docker-compose部署magento2 浏览器和服务器通讯方式的不完整总结 观察网站性能 一些关于Linux的笔记 telnet的不完整总结 在Windows下安装pear MySQL的时间类型和时间相关的函数 Windows下通过PEB读取进程的环境变量 关于 在VSCode里使用Xdebug远程调试PHP 在Windows下搭建git服务 关于环境变量的不完整总结 使用shell实现的kv数据库 如何完成以xx管理系统为选题的毕业设计 数字号码资源 使用PowerShell实现的http服务器 kind相关经验 DNSSEC简介 nginx+ffmpeg+websocket实现的直播例子 使用Tesseract识别字符验证码 使用docker部署nuxt FirstData后台的设置 paypal,firtdata,支付宝的不完整接入指南 微信支付的不完整接入指南 用docker-compose部署lnmp环境 mongodb分片 练习
各种标记语言
2022-07-30 · via f2h2h1's blog

各种标记语言

这篇文章最后更新的时间在六个月之前,文章所叙述的内容可能已经失效,请谨慎参考!

什么是标记语言

“标志(markup)”这个词来源自传统出版业的“标记”一个手稿, 也就是在原稿的边缘加注一些符号来指示打印上的要求。 长久以来,这个工作都是由专门的人("markup men")以及校对人来进行, 对原稿标志出使用什么样的字体,字体以及字号, 然后再将原稿交给其它人进行手工的排版工作。

根据维基百科对其的解释,“Markup language” 是用标准的标记来解释纯文本文档的内容,从而提供关于文档结构或文档该如何渲染的信息。

标志语言通常可以分为三类:表示性的、过程性的以及描述性的。

  • 表示性的 (Presentational markup)
    • 是在编码过程中,标记文档的结构信息。例如,在文本文件中,文件的标题可能需要用特定的格式表示(居中,放大等)
  • 过程性的 (Procedural markup)
    • 大多数情况下,过程性标志语言包含有一个图灵完备编程语言。
    • 过程性标志语言的范例有:troff, TeX以及PostScript。过程性标志语言被广泛应用在专业出版领域,专业的出版商会根据要求使用不同的指标语言以达到出版要求。
  • 描述性的 (Descriptive markup)
    • 所描述的是文件的内容或结构,而不是文件的显示外观或样式,制定SGML的基本思想就是把文档的内容与样式分开,XML、SGML都是典型的通用标志语言。

标记语言的发展

  • GML (Generalized Markup Language)
  • SGML (Standard Generalized Markup Language)
  • HTML (HyperText Markup Language)
  • XML (Extensible Markup Language)
    • XML 是一种使用非常广泛的元标记语言。 XML 是由 W3C 开发的,XML的主要目的是通过专注于特定问题(互联网上的文档)来简化SGML。XML仍然是一种像SGML这样的元语言,允许用户创建任何需要的标签(因此是“可扩展的”),然后描述这些标签及其允许的用途。
  • XHTML (Extensible HyperText Markup Language)
    • 表现方式与 HTML 类似,不过语法上更加严格。
    • 从 2000 年到 HTML5 发布,所有 W3C 对 HTML 的建议都是基于 XML 的, XHTML 的语法更严谨和健壮,能避免许多语法错误,这些语法错误在历史上会导致不兼容的浏览器行为。
  • HTML5
    • W3C 的 XHTML 并没有获得业界的认可。
    • Apple 、 Mozilla 和 Opera 等公司重新组织了一个名为 网页超文本应用技术工作小组(Web Hypertext Application Technology Working Group,WHATWG) 继续对 HTML 的开发,新的版本被命名为 HTML5 。
    • 广义上的 HTML5 是包括 HTML CSS JS 以及 Web API 在内的一套技术组合, HTML5 最开始的愿景是减少浏览器对于需要插件的富网络应用服务的需求

XML 大致的发展关联

               ┌──────────────────────┐
               │                      │
               │          ┌───────────┼─────────┐
               │          │           │         │
               │          │           ▼         ▼
  GML ──────► SGML ────► HTML ─────► XML ────► HTML5
                          │           │         ▲
                          │           │         │
                          │           ▼         │
                          └───────► XHTML ──────┘

虽然现在提及标记语言,通常就是指 XML 和基于 XML 的其它标记语言。 但笔者认为像 JSON Yaml ini 这类基于文本的数据格式也可以归类到标记语言里。

一些常见标记语言的应用

XSL

XSL 指扩展样式表语言(EXtensible Stylesheet Language)。 CSS 是 HTML 样式表,那么 XSL 就是 XML 样式表。 W3C 开始发展 XSL 的原因是:存在着对于基于 XML 的样式表语言的需求。

XSL - 不仅仅是样式表语言, XSL 包括三部分:

  • XSLT (XSL Transformations) - 一种用于转换 XML 文档的语言。
  • XPath - 一种用于在 XML 文档中导航的语言。
  • XSL-FO (XSL-Formatting Objects) - 一种用于格式化 XML 文档的语言。

Web services

Web services 平台的元素:

  • SOAP (Simple Object Access Protocol, 简易对象访问协议)
  • UDDI (Universal Description, Discovery, and Integration, 统一描述、发现和集成)
  • WSDL (Web Services Description Language, Web 服务描述语言)

SOAP 是交换数据的一种协议规范, 使用在计算机网络Web服务(web service)中,交换带结构的信息。 SOAP为了简化网页服务器(Web Server)从XML数据库中提取数据时, 节省去格式化页面时间,以及不同应用程序之间按照HTTP通信协议, 遵从XML格式执行资料互换,使其抽象于语言实现、平台和硬件。

UDDI 是统一描述、发现和集成(Universal Description, Discovery, and Integration)的缩写。 UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。 它是一个基于 XML 的跨平台的描述规范,可以使世界范围内的企业在互联网上发布自己所提供的服务。

WSDL 描述Web服务的公共接口。 这是一个基于XML的关于如何与Web服务通讯和使用的服务描述; 也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。 通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。

大多数语境下的 Web Services 平台是 XML + HTTP 。 HTTP 是可以替换成其它协议的。 Web Services 的关键是 XML 。 SOAP , UDDI , WSDL 等部分,本质上的区别是 XML 的格式和内容的区别。

RDF

资源描述框架(英语:Resource Description Framework,缩写:RDF), 是万维网联盟(W3C)提出的一组标记语言的技术规范,基于XML语法及XML Schema的资料类型以便更为丰富地描述和表达网络资源的内容与结构。

资源描述框架(RDF)是用于描述网络资源的 W3C 标准, 比如网页的标题、作者、修改日期、内容以及版权信息。

语义网

语义网(英语:Semantic Web)是由万维网联盟的蒂姆·伯纳斯-李(Tim Berners-Lee)在1998年提出的一个概念, 它的核心是:通过给万维网上的文档(如: HTML文档)添加能够被计算机所理解的语义(元数据), 从而使整个互联网成为一个通用的信息交换介质。 语义万维网通过使用标准、置标语言和相关的处理工具来扩展万维网的能力。 不过语意网概念实际上是基于很多已有技术的,也依赖于后来和text-and-markup与知识表现的综合。

基于 XML 的其它标记语言

  • DTD
    • Document Type Definition
    • 文档类型定义(DTD)可定义合法的XML文档构建模块。
    • 它使用一系列合法的元素来定义文档的结构。
    • DTD 可被成行地声明于 XML 文档中
      <!DOCTYPE note [
      <!ELEMENT note (to,from,heading,body)>
      <!ELEMENT to (#PCDATA)>
      <!ELEMENT from (#PCDATA)>
      <!ELEMENT heading (#PCDATA)>
      <!ELEMENT body (#PCDATA)>
      ]>
      
    • 也可作为一个外部引用。
      <!DOCTYPE note SYSTEM "note.dtd">
      
    • HTML 开头的那句 <!DOCTYPE> 也可以算作是 DTD
    • DTD 已经被 XSD 取代
  • XSD
    • XML Schema Definition
    • XSD 是基于 XML 的 DTD 替代者。
  • SVG
    • 可缩放矢量图形(英语:Scalable Vector Graphics,缩写:SVG)是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。SVG由W3C制定,是一个开放标准。
  • MathML
    • 数学标记语言(Mathematical Markup Language,MathML),是一种基于XML的标准,用来描述数学符号和公式。
    • 它的目标是把数学公式集成到万维网和其他文档中。从2015年开始,MathML成为了HTML5的一部分和ISO标准。
    • 只有 火狐 能直接支持 MathML 。
    • Windows 7 自带工具名叫 Math Input Panel 。可以把手写输入转换为 MathML 。
  • XLink
    • XML链接语言,或XLink,是一种通过W3C推荐标准认证的XML标记语言,用于在 XML 文档中创建超链接,以及提供与这些链接相关联的元数据。
  • OWL
    • 网络本体语言(英语:Web Ontology Language,OWL)旨在提供一种可用于描述网络文档和应用之中所固有的那些类及其之间关系的语言。OWL网络本体语言当前已经获得万维网联盟认可的,用于编纂本体的知识表达语言家族。
  • 还有很多 https://en.wikipedia.org/wiki/List_of_XML_markup_languages

各种文档格式

  • 重量级的
    • rtf
    • html
    • tex
    • pdf
  • 轻量级的
    • markdown
      • common markdown
      • GitHub Flavored Markdown (GFM)
    • textile
    • rts
    • docbook
    • AsciiDoc
    • orgmode
  • 旧时代的
    • man
    • info
  • 其他
    • bbcode
    • Wiki markup language

参考