Print

Print


Of course, the fly in the ointment here is that you still lose all of your links, which you need for the document to work as intended. From what I can see the original construction of the document relied upon the sloppiness of parsers in some of the old browsers (hence the ampersands in html special characters that weren't XML compliant). I doubt that modern XML parsers will be convinced to turn your namespaced quasi-html tags into actual, event handled html without using XSLT. I know this is a pain, but you may have to throw together an XSLT frame for these XML documents. The good news is that once you build one it'll probably work for the others.

A lower impact solution (if your documents are as few as you've said) might be to do some mass find/replace queries (and some header modifications, etc) to convert the XML tags into workable html, then just run them as such. You can, of course, keep the XML extension on the files after that. I played around with that on the file you pointed out and was able to get the links back without too much trouble. It'll be a judgement on cost/benefit.

Best regards,

Jason Bengtson, MLIS, MA
Head of Library Computing and Information Systems
Assistant Professor, Graduate College
Department of Health Sciences Library and Information Management
University of Oklahoma Health Sciences Center
405-271-2285, opt. 5
405-271-3297 (fax)
[log in to unmask]
http://library.ouhsc.edu
www.jasonbengtson.com

NOTICE:
This e-mail is intended solely for the use of the individual to whom it is addressed and may contain information that is privileged, confidential or otherwise exempt from disclosure. If the reader of this e-mail is not the intended recipient or the employee or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify us by replying to the original message at the listed email address. Thank You.

On Dec 9, 2013, at 4:42 PM, Joshua Welker <[log in to unmask]> wrote:

> Evil ampersands! They have caused me hours of headaches in past XML
> projects...
> 
> Josh Welker
> 
> 
> -----Original Message-----
> From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
> Jason Bengtson
> Sent: Monday, December 09, 2013 4:35 PM
> To: [log in to unmask]
> Subject: Re: [CODE4LIB] problem in old etd xml files
> 
> What's killing you is the ampersands. When these were encoded they
> contained characters that hadn't been properly encoded as XML (mainly
> special linguistic characters and non-breaking spaces). Definitely replace
> your :stylesheet with -stylesheet, but then do a find and replace on all
> of your ampersands. It's the number one giant killer with modern XML
> parsers. I downloaded your file, switched in the hyphen and ditched all
> the ampersands and the solution tested good for me in Chrome and Firefox.
> 
> Best regards,
> 
> Jason Bengtson, MLIS, MA
> Head of Library Computing and Information Systems Assistant Professor,
> Graduate College Department of Health Sciences Library and Information
> Management University of Oklahoma Health Sciences Center 405-271-2285,
> opt. 5
> 405-271-3297 (fax)
> [log in to unmask]
> http://library.ouhsc.edu
> www.jasonbengtson.com
> 
> NOTICE:
> This e-mail is intended solely for the use of the individual to whom it is
> addressed and may contain information that is privileged, confidential or
> otherwise exempt from disclosure. If the reader of this e-mail is not the
> intended recipient or the employee or agent responsible for delivering the
> message to the intended recipient, you are hereby notified that any
> dissemination, distribution, or copying of this communication is strictly
> prohibited. If you have received this communication in error, please
> immediately notify us by replying to the original message at the listed
> email address. Thank You.
> 
> On Dec 9, 2013, at 3:57 PM, "Robertson, Wendy C"
> <[log in to unmask]> wrote:
> 
>> Thanks.  I'll see if this helps.
>> 
>> I'm sure IE was used to view the files 4.5 years ago. I don't think I
> looked at them, but we had super employees (recent grads from library
> school) that worked with the files and I trust that they would have
> noticed problems.
>> 
>> Fortunately we only have 7 of these to try to fix.
>> 
>> Wendy
>> 
>> -----Original Message-----
>> From: Code for Libraries [mailto:[log in to unmask]] On Behalf
>> Of Jon Gorman
>> Sent: Monday, December 09, 2013 3:17 PM
>> To: [log in to unmask]
>> Subject: Re: [CODE4LIB] problem in old etd xml files
>> 
>> A lot of modern systems won't load entities (or will limit it somehow)
> because of the denial of service attack that is possible.  Look for XML
> Entity Reference Denial of Service. I can't remember if Public
> declarations are treated any differently than System ones. (I would have
> suspected it to trust SYSTEM ones more, but they'd still be exploitable by
> the same bug).
>> 
>> 
>> (There's also a fair number of other errors, I'm somewhat skeptical that
> the example worked on many browsers even then. It's possible IE was
> flexible enough it would have worked).
>> 
>> One thing you might want to do is is take out the entities.
>> 
>> I can't remember why I had to do this, but xmllint seemed to do the
> trick.
>> ( I found a snippet at
>> http://stackoverflow.com/questions/614067/how-to-resolve-all-entity-re
>> ferences-in-xml-and-create-a-new-xml-in-c,
>> but it' smissing the necessary --loaddtd)
>> 
>> xmllint --loaddtd --noent --dropdtd FRONT.xml > FRONT_nodtdent.xml
>> 
>> I mean, you don't need the dtd for validation, particularly since I
> suspect given the errors it may not validate anyhow.
>> 
>> It might make the files a little harder to read when reading the raw
> source, but I suspect that's not typically a problem.
>> 
>> Jon Gorman
>> University of Illinois
>> 
>> 
>> 
>> On Mon, Dec 9, 2013 at 2:10 PM, Robertson, Wendy C <
> [log in to unmask]> wrote:
>> 
>>> Back in 1999-2002 a handful of our theses were submitted  as a
>>> collection of xml files.  We posted the files in our repository
>>> several years ago (we posted a zipped folder with all the files).  At
>>> that time, if you opened front.xml you would be able to access the
>>> thesis. We have not touched the files in the close to 5 years since
>>> we posted them, but the files no longer open correctly. One of the
> problem theses is http://ir.uiowa.edu/etd/189/.
>>> 
>>> Front.xml begins
>>> <?xml version="1.0" encoding="UTF-8"?> <?xml:stylesheet
>>> type="text/css" href="UIowa2K1.css" ?> <!DOCTYPE thesis SYSTEM
>>> "UIowa2K.dtd">
>>> 
>>> I have tried the following changes but they do not help
>>> 
>>> 1)      Adding standalone="no"? to the xml declaration  -- <?xml
>>> version="1.0" " encoding="UTF-8" standalone="no"?>
>>> 
>>> 2)      Changing the case of "UIowa2K1.css" and "UIowa2K.dtd" to match
> the
>>> files (which are in all caps)
>>> 
>>> 3)      Changing xml:stylesheet to xml-stylesheet
>>> 
>>> Chrome shows errors that entities are not defined, but they are
>>> defined in the dtd.
>>> 
>>> I would appreciate any assistance in making these documents available
>>> again. Thanks!
>>> 
>>> Wendy Robertson
>>> Digital Scholarship Librarian *  The University of Iowa Libraries
>>> 1015 Main Library  *  Iowa City, Iowa 52242 [log in to unmask]
>>> * 319-335-5821
>>>