如何用DTD实体替换xml标记

时间:2013-01-23 06:06:31

标签: xml dtd liquibase

我可以使用以下方法使用DTD实体声明替换xml属性值

//in DTD
<!ENTITY varchar "VARCHAR(200)">
// In xml 
<column name="attachment_url" type="&varchar;"/>

现在我想替换像

这样的xml标签

<column name="attachment_url" type="VARCHAR(200)"/>

使用DTD实体。

我尝试了 <!ENTITY full_coulumn "&lt;column name=&quot;attachment_url&quot; type=&quot;VARCHAR(200)&quot;/&gt;">

然后我收到错误

 Unexpected column with text: <column name="attachment_url" type="VARCHAR(200)
"/>

是否可以用dtd Entity替换整个xml标签?我怎样才能做到这一点?

我尝试使用liquibase xml文件执行此操作。

1 个答案:

答案 0 :(得分:1)

不要逃避实体声明中的标记;通过这样做,您向处理器发信号通知实体的替换文本是一串字符,而不是标记。你想要的是:

<!ENTITY full_column "<column name='attachment_url' 
                      type='VARCHAR(200)' />">