- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个处理 HTTP 请求的网络服务。它收到的文档有一个嵌入的 DOCTYPE,指定了一个 .dtd 文件。我希望使用更新的 XML 架构验证文件,以便在更新的设备连接到我的服务时使用。
我可以成功忽略 .dtd 文件中进行的验证,但 .dtd 文件必须存在于我的本地硬盘上。我想删除这些过时的文件,但没有找到方法。
我正在处理的示例 XML 文档:
<?xml version="1.0" encoding="us-ascii" standalone="no"?>
<!DOCTYPE SomeMessage SYSTEM "SomeMessage.dtd">
<SomeMessage>data</SomeMessage>
我用来打开文档的函数:
private void LoadXmlDoc(XmlTextReader myXmlTextReader)
{
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.ValidationType = ValidationType.Schema;
readerSettings.Schemas.Add(null, MyGoodSchemaFile);
readerSettings.DtdProcessing = DtdProcessing.Ignore;
readerSettings.XmlResolver = null; // Added as a test.
readerSettings.ValidationEventHandler += ValidationEventHandle;
XmlReader myXmlReader = XmlReader.Create(myXmlTextReader, readerSettings);
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.XmlResolver = null; // Added as a test.
myXmlDocument.Load(myXmlReader); // Exception thrown here!
}
捕获到的异常:
System.IO.FileNotFoundException: Could not find file 'c:\windows\system32\inetsrv\SomeMessage.dtd'.File name: 'c:\windows\system32\inetsrv\SomeMessage.dtd' at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
未使用 SomeMessage.dtd 文件的内容——如我所愿,它已被忽略。但是,虚拟文件“c:\windows\system32\inetsrv\SomeMessage.dtd”必须存在,否则会抛出异常。
我在 Windows 7 上运行,使用 Visual Studio 2010 和 .Net 4.0
如何忽略嵌入的 .dtd 并且不需要在我的计算机上安装虚拟 .dtd 文件?
最佳答案
解决方案是将底层 XmlTextReader 的 XmlResolver 设置为 null。更改 XmlReaderSettings.XmlResolver=null 没有帮助,设置 XmlDocument.XmlResolver=null 也没有帮助
这里是更正后的函数:
private void LoadXmlDoc(XmlTextReader myXmlTextReader)
{
// The next line is the fix!!!
myXmlTextReader.XmlResolver = null; // Don't require file in system32\inetsrv
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.ValidationType = ValidationType.Schema;
readerSettings.Schemas.Add(null, MyGoodSchemaFile);
readerSettings.DtdProcessing = DtdProcessing.Ignore;
readerSettings.XmlResolver = null; // Doesn't help
readerSettings.ValidationEventHandler += ValidationEventHandle;
XmlReader myXmlReader = XmlReader.Create(myXmlTextReader, readerSettings);
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.XmlResolver = null; // Doesn't help
myXmlDocument.Load(myXmlReader); // Load doc, no .dtd required on local disk
}
关于c# - 忽略 DOCTYPE .dtd,但 .dtd 文件必须仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3894317/
有很多线程解释了选择什么 Doctype,但我找不到任何解释实际语法的线程。举个例子: 特别是: PUBLIC 是否可以替换为其他值,是什么意思? 为什么 url 需要用引号括起来? 是什么 ”-”
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在尝试制作 100% 高度的东西,但添加文档类型会破坏它。这在 other questions 上进行了解释. 然而,我发现了一些奇怪的事情——如果我关闭 doctype 标签(我知道你不应该这样
美好的一天, 我正在开发一个 C# Web 应用程序,一切正常,直到我添加普通的 JavaScript。 html代码如下: JScript.js是放入的 JavaS
我有一个主要的框架集页面,它使用 FRAMESET 文档类型..现在它里面有 3 个框架.. 现在对于第 2 帧,我想使用一些 HTML5 代码 ()...所以我想我必须使用 doctype 现在我的
我正在制作一个网页,我即将完成,所以我决定通过一个 html 验证器来验证它,但我的页面出现了一堆错误。我的页面目前适用于 ...但是当我输入 我页面的间距中断。 示例:工作时的图片 代码: 当我添
我刚刚在 W3C 验证器上检查了我的个人登陆页面以确保它是正确的 HTML5,然后发现我需要 而不是 通过。 但是背景图片不会延伸到底部。我已经尝试了 wrapper 的最小高度,并清除了,但似乎没有
这是文档类型所在的文件: Taekwendo tinymce.init({ selector: '#art
这是我的问题的 html 代码 Insert title here var arr = [ "A", "B", "C" ]; for (var i = 0; i 在
我在抓取一些具有多个 声明的网站时遇到了困难。 。 我正在使用带有 requests 的 Python 2.7.9 和来自 bs4 的 BeautifulSoup。当我执行 requests.get
我刚刚在 Windows Server 2008 上创建了一个新的 IIS 网站,以便使用它来部署新网站。 该网站仍然是空的。 如果我尝试在“管理工具”下打开 IIS Web 平台安装程序,则会遇到错
是否有使用 HTML 5 文档类型的专家 ,即使我没有使用任何新的 HTML 5 标签?即使我没有使用任何新的 HTML 5 标签,用 HTML 5 文档类型替换 XHTML 文档类型有什么好处吗?
假设我想将旧网站更改为“HTML5”风格。简单地更改标题是否安全 doctype如下? 原始文档类型可能是: 或 如果改为不可能破坏遗留网页的呈现方式,我认为它是安全的。 最佳答案 为什么是的,
通过在 windows 命令提示符下运行以下命令创建了一个全新的 express.js 项目 npm install express -g express newproject cd newproje
我懂了 DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" se
这个问题在这里已经有了答案: background-color property doesn't work correctly with HTML5 DOCTYPE [duplicate] (1
我在没有使用 Doctype 的情况下构建了我的页面,但是没有它我可以获得我期望的结果。 即使用户尝试调整窗口大小时,我也尝试每行列出 4 张图像并填充页面。 问题是我最近添加了 Doctype,这里
我注意到我的一个 html 表单存在问题,文本输入字段被截断了。我将其原因缩小到我们在页面顶部使用的 指令。 当我排除 指令时,下面场景中的输入正确呈现,这意味着文本输入字段被完整绘制。但是当我按
我知道很多人在切换到 时遇到类似的问题行,然而,我已经尝试了所有的方法,甚至是经典的 html{height: 100%;} body {min-height: 100%;} 方法,以及其他方法,但
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to replace with in an html file 我在我的
我是一名优秀的程序员,十分优秀!