Hi everyone,

I've checked a fix into CVS that allows parameter entities to be read when
DTDs are preparsed. The problem (which is still there) is in the
DTDLoader. The components it uses are not being reset properly (and
currently cannot be reset properly). For instance, in the entity manager
the external parameter entities can only be refreshed with the
reset(XMLComponentManager) method. This isn't being called. Fixing it
would require some major changes, as DTDLoader doesn't implement
XMLComponentManager or contain an XMLComponentManager. Certainly something
to revisit. I've made sure that the external entity features in the entity
manager are initialized to 'true', the same as their default values.
Before the default values would only be written when the component is
reset. This only masks a symptom of the problem, but at least external
parameter entities can now be read.

On Fri, 12 Sep 2003, Henry Miller wrote:

> I think the EntityDecl.dtd file should read:
>
> <?xml version='1.0' encoding='UTF-8' ?>
> <!ENTITY % flName " firstName, lastName " >
>     <!ELEMENT firstName (#PCDATA) >
>     <!ELEMENT lastName (#PCDATA) >
>
> A victim of the cut-n-paste demons, eh?
>
> I did some searching in Bugzilla, but found no hits. In fact, I kept
> getting "zarro boogs found" as a result. This leaves me to think that:
>
> 1) I can't figure out the web page form to specify a Buzilla search criteria.
> 2) There really isn't such a bug submitted.
>
> My money is on #1, since it was my first attempt at doing so. Can
> anyone verify if #2 is true?
>
> I'd be happy to submit the bug report, if you want me to.
>
> I'd also be happy to work on implementing a fix, but I'm not sure if
> I'm a good choice -- it's likely I'd introduce more bugs. After all,
> I'm still a noob. :-)
>
> Let me know what you think.
>
> --Henry
>
> >Hi Bob,
> >
> >This would seem  bug in the current version of Xerces-j.  The
> >following is the description.
> >
> >"When parsing , with the XMLGrammarPreparser parser,  a DTD which
> >include external entities which define  internal  PEReferences; the
> >PEReferences  are not recognized as such. The XMLDTDScannerImpl
> >ElementDecl scanner fails to recognize such a case."
> >
> >
> >This is easily reproduce with the xni.XMLGramarBuilder example.
> >
> >input.dtd
> >-------------
> >
> ><?xml version='1.0' encoding='UTF-8' ?>
> >
> ><!ENTITY % entDec SYSTEM "EntityDecl.dtd" >
> >
> >%entDec;
> ><!ELEMENT nameList (name, alias?)+>
> ><!ELEMENT name (%flName;) >
> ><!ELEMENT alias (%flName;) >
> >
> >EntityDecl
> >________
> >
> ><?xml version='1.0' encoding='UTF-8' ?>
> >
> ><!ENTITY % entDec SYSTEM "EntityDecl.dtd" >
> >
> >%entDec;
> ><!ELEMENT nameList (name, alias?)+>
> ><!ELEMENT name (%flName;) >
> ><!ELEMENT alias (%flName;) >
> >
> >
> >Run the following:
> >
> >xni.XMLGrammarBuilder -d input.dtd
> >
> >Will caulse the following Error:
> >
> >[Error] :-1:-1:
> >http://www.w3.org/TR/1998/REC-xml-19980210#EntityNotDeclared?flN
> >ame
> >[Fatal Error] :-1:-1:
> >http://www.w3.org/TR/1998/REC-xml-19980210#MSG_OPEN_PAREN_
> >OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN?name
> >:::::-1:-1:http://www.w3.org/TR/1998/REC-xml-19980210#MSG_OPEN_PAREN_OR_ELEMENT_
> >TYPE_REQUIRED_IN_CHILDREN?name
> >        at
> >org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.
> >java:361)
> >        at
> >org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.
> >java:314)
> >        at
> >org.apache.xerces.impl.XMLScanner.reportFatalError(XMLScanner.java:13
> >78)
> >        at
> >org.apache.xerces.impl.XMLDTDScannerImpl.scanChildren(XMLDTDScannerIm
> >pl.java:1009)
> >        at
> >org.apache.xerces.impl.XMLDTDScannerImpl.scanElementDecl(XMLDTDScanne
> >rImpl.java:867)
> >        at
> >org.apache.xerces.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.
> >java:1956)
> >        at
> >org.apache.xerces.impl.XMLDTDScannerImpl.scanDTDExternalSubset(XMLDTD
> >ScannerImpl.java:318)
> >        at
> >org.apache.xerces.impl.dtd.XMLDTDLoader.loadGrammar(XMLDTDLoader.java
> >:392)
> >        at
> >org.apache.xerces.parsers.XMLGrammarPreparser.preparseGrammar(XMLGram
> >marPreparser.java:244)
> >        at xni.XMLGrammarBuilder.main(XMLGrammarBuilder.java:271)
> >
> >
> >Regards,
> >
> >           Jeffrey Rodriguez
> >           Silicon Valley
> >
> >
> >
> >
>
>

-- 
--------------------
Michael Glavassevich
[EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to