Missing IDs in mathml.dtd

RESOLVED FIXED in mozilla1.6alpha

Status

()

Core
MathML
RESOLVED FIXED
17 years ago
15 years ago

People

(Reporter: rbs, Assigned: hsivonen)

Tracking

Trunk
mozilla1.6alpha
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

17 years ago
In bug 113400 comment #5 From Henri Sivonen 2002-01-13 06:14 -------
[...]
I took the official DTD (372 KB) and removed all the declarations and comments I
thought were uninteresting for a non-validating system. I ended up with 45 KB
exclusive of the character entity declarations that already exist in Mozilla's
mathml.dtd. However, I'm getting syntax error but I haven't yet figured out why.
[...]

---------------
Got any luck since then? This would be a good thing to have for m1.0. It looks 
alright to me to just have the IDs than aim at further extras and end up with 
nothing at all in the allocated schedules of the milestones.
(Assignee)

Updated

16 years ago
Status: NEW → ASSIGNED
(Assignee)

Comment 1

16 years ago
Created attachment 73912 [details]
Current status
(Assignee)

Comment 2

16 years ago
Sorry, but I can't figure out why the I'm getting an error. I have a minimized
test case at http://www.hut.fi/~hsivonen/test/entity-entity.xml

The problematic declaration comes from the W3C's DTD.
(Assignee)

Comment 3

16 years ago
Expat doesn't like it when an entity parameter declaration depends on another
parameter entiry declaration. Then, the element declarations in which the IDness
of id is declared, rely on parameter entities declared in the problematic way.

The idea is that the document author can tweak a couple of declarations in the
internal subset and have the entire external subset parsed differently. This
would break if I hard-coded the namespace prefix etc.

Any ideas on how to proceed from here?
hsivonen:  I have a testcase using the XHTML 1.1 + MathML 2.0 DTD from W3C
directly, where DOM Core Level 1's document.getElementById() breaks, trying to
get a MathML element by its id attribute.  No parsing errors; a complete copy of
the DTD.  Is this the same bug as you report here, or another bug?

Comment 5

15 years ago
Isn't this really an XML bug, then?
Created attachment 125337 [details]
testcase: id & MathML  namespace work together

This testcase shows that getElementById() works for a MathML element if the
ID-ness of an attribute is declared in the DTD
The actual bug seems to be that Expat does not handle parameter entity
references inside other entity references. If you try to do that in the internal
subset (http://www.hut.fi/~hsivonen/test/entity-entity.xml), you get a parser
error. If you do that in an external DTD, we silently fail.

Now, this bug can be solved independent of the Expat changes by making sure the
DTD does not use parameter entity references inside entity references. I advice
doing this, since it is unclear when we can fix Expat.

I filed bug 208972 for the Expat issue.
(Reporter)

Comment 8

15 years ago
Fixed via bug 208744.

bz simply hardcoded 'id' for MathML elements, which is spec-compliant. Whether
the 'id' attributed is hard-coded or added on the fly from an external DTD file
is immaterial for MathML. Marking FIXED.
Status: ASSIGNED → RESOLVED
Last Resolved: 15 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.6alpha
You need to log in before you can comment on or make changes to this bug.