这是在 Web 服务(客户端)的上下文中。我需要与后端系统 (Java) 交互,并且需要在
and
范围内传输一些控制字符。
我很清楚 XML 1.0 不支持这一点,但我很想知道 .NET 4 平台或 .NET 4.5 Web 服务框架是否支持 XML 1.1 中的对话。
这是在 Web 服务(客户端)的上下文中。我需要与后端系统 (Java) 交互,并且需要在
and
范围内传输一些控制字符。
我很清楚 XML 1.0 不支持这一点,但我很想知道 .NET 4 平台或 .NET 4.5 Web 服务框架是否支持 XML 1.1 中的对话。
不,它看起来不XmlReader
支持 1.1(.NET 中大部分 XML 支持的核心):
using System;
using System.IO;
using System.Xml;
class Program
{
static void Main(string[] args)
{
string xml = "<?xml version=\"1.1\" ?><tag></tag>";
var reader = XmlReader.Create(new StringReader(xml));
while (reader.Read());
}
}
输出:
Unhandled Exception: System.Xml.XmlException: Version number '1.1' is invalid.
Line 1, position 16.
我已经查看了XmlReaderSettings
是否有任何帮助,但我认为它没有。基本上我认为你暂时被困住了:(
编辑:稍微阅读一下 XML 1.1,看起来它没有被广泛部署或推荐,所以我对 .NET 4.5 不支持它并不感到特别惊讶。我的猜测是它永远不会,因为它不是一个特别新的建议。最新版本是2006 年的第 2 版。如果 7 年后仍不支持,我怀疑将来必须有一些重大事件才能使其值得支持。
我确信这不是最好的选择,但如果你下载IKVM,你可以在引用一些程序集后在你的 .Net 代码中使用 java 类(真的是 .Net 代码 :))
var fXmlFile = new java.io.File(xmlfile);
var dbFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
var dBuilder = dbFactory.newDocumentBuilder();
var doc = dBuilder.parse(fXmlFile);
var nList = doc.getElementsByTagName("controlcharacters");
var chars = nList.item(0).getTextContent().ToCharArray();
XML 文件:
<?xml version="1.1" ?>
<root>
<controlcharacters></controlcharacters>
</root>