我正在尝试序列化 XML 并创建一个文件。我正在从使用 xsd.exe 从 XSD 自动生成的对象进行序列化。该文件处理并创建得很好。但是,每当我针对验证工具运行它时,我都会收到错误Content Not Allowed In Prolog
我的猜测是在 xml 声明之前有一些格式错误的字符,但我看不到它们,也看不到那里的任何字节。这是我序列化和创建 XML 文档的代码:
XmlSerializer ser = new XmlSerializer(typeof(ContinuityOfCareRecord));
XmlWriterSettings settings = new XmlWriterSettings()
{
Encoding = Encoding.UTF8,
ConformanceLevel = ConformanceLevel.Document,
OmitXmlDeclaration = false,
Indent = true,
NewLineChars = "\n",
CloseOutput = true,
NewLineHandling = NewLineHandling.Replace,
CheckCharacters = true
};
using (XmlWriter myWriter = XmlWriter.Create(ms, settings))
{
myWriter.Flush();
//myWriter.WriteProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"ccr.xsl\"");
ser.Serialize(myWriter, myCCR);
}
看起来很简单,但是如果输出 XML 文件的开头有格式错误的字符,我该如何删除这些字符?
XML 文档的开头是这样的:
<?xml version="1.0" encoding="utf-8"?>
<ContinuityOfCareRecord xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:astm-org:CCR">
<CCRDocumentObjectID>testccr</CCRDocumentObjectID>
<Language>
看起来是正确的,但验证器就是不喜欢它。我整天都在办公桌上敲着头,所以任何示例代码都会非常有帮助!
谢谢