Поддерживает ли.Net 4.5 XML 1.1 (для недопустимых символов в XML 1.0)?
Это в контексте веб-сервисов (клиентская часть). Мне нужно взаимодействовать с серверной системой (Java), и это требование для передачи некоторых управляющих символов в 
а также 
спектр.
Мне хорошо известно, что XML 1.0 не поддерживает это, но мне интересно узнать, поддерживают ли платформа.NET 4 или платформа веб-служб.NET 4.5 диалоги в XML 1.1.
2 ответа
Нет не похоже XmlReader
(ядро большей части поддержки XML в.NET) поддерживает 1.1:
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 годом. Если оно не будет поддержано 7 лет спустя, я подозреваю, что должно произойти какое-то значительное событие, чтобы оно стоило поддерживать в будущем.
Я уверен, что это не лучший вариант, но если вы загружаете IKVM, вы можете использовать java-классы в вашем.Net-коде после ссылки на несколько сборок (действительно.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>