В настоящее время я работаю над проектом, который требует чтения в сообщениях XJMF и XJDF в C #.Мне удалось найти некоторые полезные инструменты, такие как Инструмент определения схемы XML, предоставленный Microsoft.Однако после запуска генератора и отправки сигнального сообщения XJMF я обнаружил, что созданный объект имеет иерархию обычного объекта XML, а не объект сообщения XJMF.Отправка сообщения XJDF создает объект XJDF с ожидаемой иерархией XJDF, как и ожидалось.
Я не уверен, является ли это предполагаемым поведением или нет;или если файл xsd потенциально может где-то содержать ошибку.
Шаги для воспроизведения:
- Загрузить последний файл .xsd из cip4 CIP4 XSD-файл
- Используйте инструмент определения схемы Microsoft для создания классов с файлом xsd.
- Загрузите XML-файл XJMF с cip4. Образец XJMF
(Все образцы файлов XJMF / XJDF находятся здесь Файлы Cip4
В файле C # поместите следующий код вчитать и десериализовать.
using System;
using System.Xml;
using System.Xml.Serialization;
namespace XJDF_XJMF_xsd_ClassGeneration
{
class Program
{
static void Main(string[] args)
{
var reader1 = new XmlTextReader("xjmfFromCip4.xml");
XmlSerializer serializer1 = new XmlSerializer(typeof(XJMF));
var XJMFtest = (XJMF)serializer1.Deserialize(reader1);
Console.Write("Check 'XJMFtest' Object\n");
var reader2 = new XmlTextReader("xjdfFromCip4.xml");
XmlSerializer serializer2 = new XmlSerializer(typeof(XJDF));
var XJDFtest = (XJDF)serializer2.Deserialize(reader2);
Console.Write("Check 'XJDFtest' Object\n"); //Set BreakPoint Here
}
}
}
Пожалуйста, дайте мне знать, если у вас есть какие-либо проблемы с воспроизведением этого или вы хотите отправить образец проекта. Дополнительно, дайте мне знать, если у вас есть какие-либо вопросы или ответы о том, почему это происходит такЕсли это намеченное поведение, пожалуйста, дайте мне знать. Насколько я понимаю, поколение XSD должно было создать объекты, к которым можно легко получить доступ в иерархии, определенной для XJMF.
Спасибо