使用DocBook V4.x和DTD,我可以创建一个实体:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY mdash "—">
]>
<article>
...
<title>Em dash</title>
<para>The em dash is perhaps the most versatile punctuation mark.
Depending on the context, the em dash can take the place of commas,
parentheses, or colons—in each case to slightly different effect.</para>
...
</article>
如何使用RELAX NG模式对DocBook V5.0执行同样的操作?:
<?xml version='1.0' encoding='utf-8'?>
<article xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'>
...
<title>Em dash</title>
<para>The em dash is perhaps the most versatile punctuation mark.
Depending on the context, the em dash can take the place of commas,
parentheses, or colons—in each case to slightly different effect.</para>
不能使用RELAX NG定义一般实体。实体是DTD的东西。您要么需要使用内部DTD子集(如第一个代码示例),要么只使用硬编码的工具来识别实体(如Web浏览器)。