通八洲科技

XML的“混合内容”是什么 怎么用DTD或XSD定义

日期:2026-01-02 00:00 / 作者:星降
XML混合内容指元素同时包含文本和子元素,DTD中用(#PCDATA|e1|e2)*声明且#PCDATA须居首、不可重复,XSD则通过mixed="true"实现并支持精细约束;适用于富文本,慎用于数据交换。

XML的“混合内容”指一个元素既包含文本(字符数据),又包含子元素。比如:

这是一个强调的段落。

——p元素里既有普通文字,又有em标签。这种结构在HTML中很常见,但在XML中需要显式声明才被允许。

DTD中定义混合内容

DTD用mixed content model语法,核心是(#PCDATA | element1 | element2)*这种写法。关键点:

示例:


这样就允许p内穿插文本、emstrongbr,顺序和数量都不限。

XSD中定义混合内容

XSD通过mixed="true"属性启用混合内容,比DTD更清晰可控:

示例:









这个定义允许p中任意位置出现文本、embr,还能为em指定内容类型。

什么时候该用混合内容

不是所有场景都适合混合内容:

基本上就这些。混合内容本质是放宽结构限制,用之前想清楚:你真需要这种灵活性,还是只是没设计好元素边界?