[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dtd and class hierarchy



Hi!

Всегда, когда приходится сочинять (оба раза :) dtd, сталкиваюсь с
проблеммой -- как в нем передать наследование между классами
(элементами). 

Вот пример:

<!element a - - (a)+ >

<!attlist a
	name CDATA #IMPLIED>

<!element b - - (a|b)+ >

<!attlist b
	name CDATA #IMPLIED
	lang CDATA #IMPLIED >

Единственный вариант, который я придумал -- это загонять содержание и
аттрибуты элемента в entities, которые потом и подставлять.  Но и
здесь имеются проблеммы:

<!entity % a-cont "a">
<!entity % a-attr "name CDATA #IMPLIED">
<!element a - - (%a-cont;)+ >
                ^^^^^^^^^^^  
<!attlist a %a-attr; >

<!entity % b-cont "%a-cont; | b">
<!entity % b-attr "%a-attr; 
	land CDATA #IMPLIED" >
<!element b - - (%b-cont;)+ >
                ^^^^^^^^^^^
<!attlist b %b-attr; >

Идеи?

-- 
SY, Andrey V Khavryutchenko

'Sides, if talent never saved bad management how is any software ever
written. ;)		-- nigel@access.digex.net (Nigel Tzeng)