Passing #FIXED values through para. entity refrences
Amit Rekhi
amitr at abinfosys.com
Mon Jun 29 12:52:41 BST 1998
Hello All,
I am in the process of BETTERING an XML-DTD I made.
In the process of making it compact, I decided to encapsulate all the repeated(in the DTD) attribute definations of elements in parameter entities, and use para. entity refrences in places where the attr. defs. are repeated.
But, all the repeated attributes I want to add to my parameter entity have #FIXED and DIFFERENT values at all the places they are repeated at, as a result of which I am not being able to add them to the para. entity replacement text even though they are repeated.
Let me explain my problem with an example.
I have the following 2 element declarations :-
<!ELEMENT ele1 (#PCDATA)>
<!ATTLIST ele1
common-attr CDATA #FIXED "common-attr-value1">
<!ELEMENT ele2 (#PCDATA)>
<!ATTLIST ele2
common-attr CDATA #FIXED "common-attr-value2">
Since both the elements have AN ALMOST SIMILAR attribute 'common-att' (except the #FIXED values) I want to encapsulate the common-attr attribute defination in a parameter entity and refrence the para. entity at points where I want to add the common-attr defination, so that my DTD would loook like :-
< !ENTITY %attr-def 'common-attr CDATA #FIXED ".................." '>
|
|
\ /
What to write here
<!ELEMENT ele1 (#PCDATA)>
<!ATTLIST %attr-def; >
<!ELEMENT ele2 (#PCDATA)>
<!ATTLIST ele2 %attr-def;>
But the problem of using a parameter refrence here is that the attribute 'common-attr' has different #FIXED values at both the places it is used so a simple refrence like %attr-def; will not give it the required #FIXED values it requires.
Concerning this issue I have 3 questions :-
1. Whether encapsulating the attribute common-attr in a para. refrence is proper or not even though the attribute is NOT exactly similar in both places it is used?
(I feel it is correct,since the attribute definations at both the places differ only in their VALUE , nothing else!)
2. Is there way to pass #FIXED values of SAME parameter definations through their entity refrences(something like parameter passing)? eg.
<!ELEMENT ele1 (#PCDATA)>
<!ATTLIST ele1 %attr-def(/*-------pass fixed value here--------*/); >
<!ELEMENT ele2 (#PCDATA)>
<!ATTLIST ele2 %attr-def(/*-------pass fixed value here--------*/);>
3. Is there any way I can add attributes like 'common-attr'(used in the eg. above) to a para. entity and only call its refrence in places it is needed in the DTD making sure that at each calling place a unique #FIXED value is passed?
Thanx in advance,
AMIT REKHI
Software Engineer,
A.B.Infosys.P.Ltd,
New Delhi
INDIA.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ic.ac.uk/pipermail/xml-dev/attachments/19980629/75f38e57/attachment.htm
More information about the Xml-dev
mailing list