Extensible Markup Language (.xml)

W3C 标准

Extensible Markup Language (XML) is a versatile markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.

在线压缩 XML

100% 浏览器本地私密压缩 — 文件永不离开您的设备

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 XML 文件:

选择或拖放文件

选择或将文件拖放到此处

100% 浏览器端私密转换 - 文件绝不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (Magic Bytes)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 XML 文件:

十六进制签名 (偏移量 0):

3C 3F 78 6D

ASCII 表示形式: <?xm

标准化: W3C Recommendation (XML 1.0 Fifth Edition)

技术规格

容器架构Hierarchical text markup language with custom semantic tags and attributes
压缩方式Gzip / Deflate achieves 85%-92% compression on verbose closing tags
字节序UTF-8 / UTF-16 character stream determined by XML declaration encoding attribute
色彩空间Not applicable
通道与结构Elements (<tag>), attributes (attr="val"), CDATA blocks, processing instructions
最大尺寸Unbounded hierarchical tree structure
透明度Not applicable
流式传输与渐进式加载SAX (Simple API for XML) and StAX parsers enable memory-efficient stream reading

技术对比矩阵:XML 对比同类产品

技术属性XML (当前)JSONYAMLProtocol Buffers
VerbosityHigh (closing tags and attribute syntax)Low (compact key-value format)Low (indentation-based)Ultra-low (binary serialization)
Schema ValidationMature XSD & DTD standards with compiler enforcementJSON Schema (optional)JSON Schema / Yaml schemasStrict .proto schema definitions
NamespacesNative XML namespaces (xmlns) supportNo native namespace mechanismNo native namespace mechanismPackage declarations
TransformationsXSLT declarative transformation pipelinesCustom code / jq scriptsCustom codeCustom code

常见损坏模式与十六进制恢复指南

⚠️ XML Parsing Error: mismatched tag or entity not defined.

根本原因: Unescaped reserved characters (like '&', '<', or '>') or case mismatch between opening and closing tags.

恢复方法: Replace '&' with '&amp;', '<' with '&lt;', '>' with '&gt;', or wrap arbitrary text inside '<![CDATA[ ... ]]>'' blocks.

安全分析与解析器攻击向量

XML parsers have historically been one of the most attacked components in enterprise computing due to powerful DTD and entity expansion capabilities.

已知攻击向量

  • XML External Entity (XXE): Malicious DOCTYPE referencing local server files ('file:///etc/passwd') or internal network endpoints.
  • Billion Laughs Attack (XML Bomb): Nested entity declarations expanding exponentially in memory to cause denial of service.
  • XPath Injection: Unsanitized user inputs allowing unauthorized querying of XML databases.

防御性最佳实践: Always disable external DTD resolution and external entity processing (setFeature 'disallow-doctype-decl' to true) in XML parsers.

历史渊源与里程碑

2008W3C publishes XML 1.0 Fifth Edition, standardizing modern international character support.
1998W3C publishes XML 1.0 Recommendation as a simplified, web-friendly subset of SGML.

核心优势与特点

  • Rigorous schema validation using XSD (XML Schema Definition) or DTD ensures strict data integrity.
  • Namespaces (xmlns) prevent element name collisions in complex multi-source documents.
  • Powerful querying and transformation toolchains (XPath, XSLT, XQuery).

技术局限与劣势

  • Extremely verbose: closing tags repeat element names, creating large file sizes and high bandwidth consumption.
  • DOM parsing builds large memory-intensive object trees.
  • Prone to XML External Entity (XXE) and entity expansion security vulnerabilities.

趣味技术冷知识

  • XML is a simplified subset of SGML (Standard Generalized Markup Language), designed to work seamlessly over the World Wide Web.
  • Modern office documents (.docx, .xlsx), vector images (.svg), and RSS feeds are all specialized XML dialects.

常见技术问题

What is the difference between well-formed and valid XML?

'Well-formed' XML follows the basic syntax rules (matching tags, quotes around attributes, single root element). 'Valid' XML is well-formed AND adheres strictly to an external schema definition (XSD or DTD).

Why did JSON replace XML for most web APIs?

JSON maps directly to native JavaScript and programming language data structures (hash maps and arrays) with much less boilerplate, faster parsing, and smaller network payloads.