[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Transforming documents with undefined entities
- From: Andrew Campbell <Andrew.Campbell@synchronoss.com>
- To: "xml-dev@lists.xml.org" <xml-dev@lists.xml.org>
- Date: Tue, 19 Apr 2016 13:50:55 +0000
Thanks - adding `standalone="yes"` made it throw an error as expected, as did adding `-dtd:yes` to the saxon command.
On 19/04/2016, 13:41, "G. Ken Holman" <g.ken.holman@gmail.com on behalf of gkholman@CraneSoftwrights.com> wrote:
>The answer is in the XML Spec section 4.1:
>
> https://www.w3.org/TR/2008/REC-xml-20081126/#sec-references
> Well-formedness constraint: Entity Declared
> ...
> Note that non-validating processors are not obligated to read
> and process entity declarations occurring in parameter entities
> or in the external subset; for such documents
>
>I note in your example that you don't have a
>standalone declaration, and so the processor is
>allowed to ignore the entity reference:
>
><!DOCTYPE chapter SYSTEM "external.dtd">
><chapter>&badent;</chapter>
>
>Changing your instance as follows:
>
><?xml version="1.0" standalone="yes"?>
><!DOCTYPE chapter SYSTEM "external.dtd">
><chapter>&badent;</chapter>
>
>... triggers an error.
>
>I hope this helps.
>
>. . . . . . Ken
>
>At 2016-04-19 08:27 +0000, Andrew Campbell wrote:
>>Hi everyone,
>>
>>I’m experiencing something unexpected when
>>transforming documents with undefined entities
>>using Saxon. I asked on the Saxon mailing list,
>>and Michael Kay suggested I tried asking here too.
>>
>>I have two XML files, one with an internal DTD
>>(badent-internal.xml), one with an external DTD
>>(badent-external.xml). Both of them reference an
>>undefined entity (&badent;). When I parse either
>>of them with xmllint, the undefined entity is reported.
>>
>>$ xmllint badent-internal.xml
>>badent-internal.xml:4: parser error : Entity 'badent' not defined
>><chapter>&badent;</chapter>
>> ^
>>
>>When I try to transform them on the command line
>>using Saxon, badent-internal.xml throws an
>>error, but badent-external.xml is transformed as
>>if the entity reference were not present.
>>
>>$ java -cp
>>~/Documents/XML/SaxonHE9-6-0-7J/saxon9he.jar
>>net.sf.saxon.Transform -xsl:simple.xsl -s:badent-internal.xml
>>Error on line 4 column 18 of badent-internal.xml:
>> SXXP0003: Error reported by XML parser: The
>> entity "badent" was referenced, but not declared.
>>org.xml.sax.SAXParseException; systemId:
>>file:/Users/acam0006/Desktop/saxon.entity.test/missing.entity/badent-internal.xml;
>>lineNumber: 4; columnNumber: 18; The entity
>>"badent" was referenced, but not declared.
>>
>>$ java -cp
>>~/Documents/XML/SaxonHE9-6-0-7J/saxon9he.jar
>>net.sf.saxon.Transform -xsl:simple.xsl -s:badent-external.xml
>><?xml version="1.0" encoding="UTF-8"?><success/>
>>
>>I expected both files to throw the same error. What is going on?
>>
>>I have attached the relevant files to this email.
>>
>>Andrew
>
>
>--
>Check our site for free XML, XSLT, XSL-FO and UBL developer resources |
>Streaming hands-on XSLT/XPath 2 training @US$45: http://goo.gl/Dd9qBK |
>Crane Softwrights Ltd. _ _ _ _ _ _ http://www.CraneSoftwrights.com/x/ |
>G Ken Holman _ _ _ _ _ _ _ _ _ _ mailto:gkholman@CraneSoftwrights.com |
>Google+ blog _ _ _ _ _ http://plus.google.com/+GKenHolman-Crane/posts |
>Legal business disclaimers: _ _ http://www.CraneSoftwrights.com/legal |
>
>
>---
>This email has been checked for viruses by Avast antivirus software.
>https://www.avast.com/antivirus
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]