如何生成带有 DTD 引用的 linq to xml 信息集?

发布于 2024-08-08 00:32:10 字数 277 浏览 4 评论 0原文

我需要生成一个 xml 信息集,但该信息集需要包含对客户端 DTD 的引用。所需的输出需要包含此 DTD 引用。

<!DOCTYPE AutoApplication SYSTEM "http://www.clientsite.com/public/DTD/autoappV1-3-level2.dtd">

此引用位于 xml 声明的正下方。 XProcessingInstruction 或 XDeclaration 都不能完成这项工作,我需要使用其他类型吗?

I need to generate an xml infoset but the infoset needs to contain a reference to a client's DTD. The desired out needs to contain this DTD reference

<!DOCTYPE AutoApplication SYSTEM "http://www.clientsite.com/public/DTD/autoappV1-3-level2.dtd">

This reference sits directly benath the xml declaration. Neither XProcessingInstruction or XDeclaration do the job, is there another type I need to use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

屌丝范 2024-08-15 00:32:10

您需要使用 XDocumentType 对象添加 dtd。有关详细信息,请参阅此处。应该注意的是,xlinq 对 DTD 的处理非常有限(请参阅 msdn)。

一些示例代码...

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Linq;
public class MainClass 
{
   public static void Main() 
   {
      XDocument xDocument = new XDocument();
      XDocumentType documentType = new XDocumentType("Books", null, "Books.dtd", null);
      xDocument.Add(documentType, new XElement("Books"));
      Console.WriteLine(xDocument);
   }
}

you need to add your dtd using a XDocumentType object. see here for more info. It should be noted that xlinq has pretty limited processing for DTD's, though (see msdn).

some sample code....

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Linq;
public class MainClass 
{
   public static void Main() 
   {
      XDocument xDocument = new XDocument();
      XDocumentType documentType = new XDocumentType("Books", null, "Books.dtd", null);
      xDocument.Add(documentType, new XElement("Books"));
      Console.WriteLine(xDocument);
   }
}
老娘不死你永远是小三 2024-08-15 00:32:10

对于这个 xml 片段。

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE AutoApplication SYSTEM "http://www.clientsite.com/public/DTD/autoappV1-3-level2.dtd">

我们会这样做:

XDocument xDoc = new XDocument(
    new XDeclaration("1.0", "utf-8", "yes"),
    new XDocumentType("AutoApplication", null, "http://www.clientsite.com/public/DTD/autoappV1-3-level2.dtd", null));
);

For this xml fragment.

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE AutoApplication SYSTEM "http://www.clientsite.com/public/DTD/autoappV1-3-level2.dtd">

We would do:

XDocument xDoc = new XDocument(
    new XDeclaration("1.0", "utf-8", "yes"),
    new XDocumentType("AutoApplication", null, "http://www.clientsite.com/public/DTD/autoappV1-3-level2.dtd", null));
);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文