Подтвердить что ты не робот

Does.Net 4.5 еще поддерживает XML 1.1 (для символов, недействительных в XML 1.0)?

Это в контексте веб-служб (конец клиента). Мне нужно взаимодействовать с внутренней системой (Java), и необходимо передать некоторые управляющие символы в диапазоне  и .

Мне хорошо известно, что XML 1.0 не поддерживает это, но мне интересно узнать, поддерживает ли платформа .NET 4 или .NET 4.5 поддержку веб-сервисов в XML 1.1.

4b9b3361

Ответ 1

Нет, это не похоже на 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>&#x1</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, чтобы увидеть, поможет ли что-нибудь, но я не думаю, что это так. В основном я думаю, что вы застряли на мгновение: (

EDIT: немного читайте XML 1.1, похоже, что он не был широко распространен или рекомендован, поэтому я не особо удивлен тем, что он не поддерживается в .NET 4.5. Я предполагаю, что это никогда не будет, учитывая, что это не особенно новая рекомендация. Самая последняя версия - это 2-е издание, которая датируется 2006 годом. Если она не будет поддерживаться через 7 лет, я подозреваю, что для ее создания должно быть какое-то важное событие заслуживает поддержки в будущем.

Ответ 2

Я уверен, что это не лучший вариант, но если вы загрузите 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>&#14;&#15;</controlcharacters>
</root>