我正在开发一个将根据用户输入生成 MLT 文件的项目。一个典型的案例可能会生成一个 MLT 文件,其中包含数千个几乎相似的过滤器。每个过滤器将有 11 个属性,但只有 3 个属性会随着过滤器的变化而变化,如下面的示例所示。有没有办法减少所有这些数据的重复?
<?xml version='1.0' encoding='utf-8'?>
<mlt>
<profile width="1920" height="1080"/>
<producer mlt_service="color"
resource="black"
in="0"
out="89"/>
<filter mlt_service="text"
geometry="1.354%/7.407%:78.125%x77.407%:100"
family="Nimbus Sans L"
size="1000"
fgcolour="white"
bgcolour="0"
halign="right"
valign="middle"
argument="1"
in="0"
out="29"/>
<filter [...same first 8 attribute settings...]
argument="2"
in="30"
out="59"/>
<filter [...same first 8 attribute settings...]
argument="3"
in="60"
out="89"/>
[...thousands more similar filters...]
</mlt>
我知道 SVG 规范提供了一个<defs>
带有 xlink 命名空间的标签,它允许这样的事情:
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<tag id="my-tag" [...reusable attributes...] />
</defs>
<use xlink:href="#my-tag" [...instance-specific attributes...] />
</svg>
在我的情况下,类似的东西会很有用。MLT中是否有类似的东西?如果没有,有没有办法修改 DTD 来实现类似的东西?
我尝试使用 XML 实体,但 IIUC 仅适用于单个引用的属性值,或单个元素的开始和结束标记之间的内容。
任何指导表示赞赏。
谢谢