我有要求用戶根據@base屬性製作專門化屬性@ a,@ b,@ c。而@a和@b適用於所有元素,但對於@c而言,僅適用於<fig>
元素。 OASIS方案(DTD)中存在元素<fig>
,它不是我的專業元素。屬性專門化和約束模塊
據我所知,可以通過下面的RELAX NG編碼完成屬性專門化。
<define name="aAtt-d-attribute">
<optional>
<attribute name="a">
<a:documentation>Specifies @a to which an element applies.
</a:documentation>
</attribute>
</optional>
</define>
<define name="base-attribute-extensions" combine="interleave">
<ref name="aAtt-d-attribute"/>
</define>
但我不知道如何在RELAX NG中爲@c編寫約束模塊並將它們集成到shell .rng文件中。請給我你的建議。
最重要的一點是通過最低限度的符合方式爲現有的(OASIS TC提供的)元素添加新的屬性。最初的討論可以在[https://groups.yahoo.com/neo/groups/dita-users/conversations/topics/39272](https://groups.yahoo.com/neo/groups/dita-users)中找到。/conversations/topics/39272) – tmakita