straudlater
06-18-2010, 02:58 PM
I have two sgml files that differ only in the root attribute (removed the rest of the sgml for clarity):
SGML A starts with: <sgml attr="-//TEST//TEST SGML//EN">
SGML B starts with: <sgml attr=-//TEST//TEST SGML//EN>
Notice that the only difference is that SGML A has double quotes that delimit the attr value.
Now, when I try to load each file into an xml stream, SGML A loads onto the xml stream with no errors, but SGML B gets an InvalidOperationException with a "There was no XML start tag open." error message.
Here's the snippet of code where SGML B fails:
sgmlReader.Read();
while (!sgmlReader.EOF)
{
xmlOutputWriter.WriteNode(sgmlReader, true);
}
xmlOutputWriter.Flush();
Is there any property that I need to set for SMGL B in order for it to work?
Update: After further tests, I may have figured out why the quotes make such a difference: the trailing /EN> of SGML B causes SgmlReader to think that this is the end of the <EN> tag, which doesn't exist! Could this be a bug in SgmlReader?
Thanks,
George
SGML A starts with: <sgml attr="-//TEST//TEST SGML//EN">
SGML B starts with: <sgml attr=-//TEST//TEST SGML//EN>
Notice that the only difference is that SGML A has double quotes that delimit the attr value.
Now, when I try to load each file into an xml stream, SGML A loads onto the xml stream with no errors, but SGML B gets an InvalidOperationException with a "There was no XML start tag open." error message.
Here's the snippet of code where SGML B fails:
sgmlReader.Read();
while (!sgmlReader.EOF)
{
xmlOutputWriter.WriteNode(sgmlReader, true);
}
xmlOutputWriter.Flush();
Is there any property that I need to set for SMGL B in order for it to work?
Update: After further tests, I may have figured out why the quotes make such a difference: the trailing /EN> of SGML B causes SgmlReader to think that this is the end of the <EN> tag, which doesn't exist! Could this be a bug in SgmlReader?
Thanks,
George