XSD файл C # Проблемы создания классов для XJMF - PullRequest
0 голосов
/ 04 октября 2018

В настоящее время я работаю над проектом, который требует чтения в сообщениях XJMF и XJDF в C #.Мне удалось найти некоторые полезные инструменты, такие как Инструмент определения схемы XML, предоставленный Microsoft.Однако после запуска генератора и отправки сигнального сообщения XJMF я обнаружил, что созданный объект имеет иерархию обычного объекта XML, а не объект сообщения XJMF.Отправка сообщения XJDF создает объект XJDF с ожидаемой иерархией XJDF, как и ожидалось.
Я не уверен, является ли это предполагаемым поведением или нет;или если файл xsd потенциально может где-то содержать ошибку.

Шаги для воспроизведения:

  1. Загрузить последний файл .xsd из cip4 CIP4 XSD-файл
  2. Используйте инструмент определения схемы Microsoft для создания классов с файлом xsd.
  3. Загрузите 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.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...