XSDObjectGen.exe по сравнению с XSD.exe

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
18
задан AnthonyLambert 10 May 2016 в 01:06
поделиться

3 ответа

В качестве альтернативы существует Xsd2Code . Некоторые возможности:

  • Генерация частичного класса.
  • Поддержка общих и настраиваемых коллекций (List, ObservableCollection, MyCustomCollection).
  • Поддержка автоматических свойств, когда не требуется специального получения или установки.
  • Может создавать атрибуты WCF (DataContract / DataMember).
  • Поддержка пустого типа.
  • Скрыть частное поле в IDE (использовать атрибут EditorBrowsableState.Never).
  • Сгенерировать размещение объекта в конструкторе.
  • Реализуйте INotifyPropertyChanged для включения привязки данных для wpf или Silverlight.
  • Повышает продуктивность с помощью надстройки Visual Studio.
  • Создание сводной документации из аннотации xsd.
  • Перед вызовом события изменения свойства проверьте, совпадают ли новое и старое значения в установщике int.
  • Создание опций резервного копирования в заголовке cs или vb.
  • Сохранение и загрузка XML-документа в изолированное файловое хранилище для приложения Silverlight (новое в версии 3.0).
  • Сгенерировать код CS, VB или CPP.
  • Сериализовать / десериализовать объект.
  • Сохранить в файл и загрузить из файла.
  • Включить Xsd2CodeCustomTool.
29
ответ дан 21 October 2019 в 05:35
поделиться

Похож на Вас, может использовать, это с VS2005, по крайней мере (согласно эта статья, так или иначе )

Просто добавляет его к Вашему Внешнему набору Инструментов VS2005 под "Инструментами>> Внешние Инструменты... ".

Установленный Ваши параметры как следующий

  • Для VB: $ (ItemPath)/l:vb/f: $ (ItemFileName) .vb/c/d/t
  • Для C#: $ (ItemPath)/l:cs/f: $ (ItemFileName) .vb/c/d/t

, действительно кажется, что XSD и XSDObjectGen приведут к различным классам. На самом деле в комментариях в этой статье Rick Strahl говорится", они уступают очень различные классы " в статья здесь .

4
ответ дан 21 October 2019 в 05:35
поделиться

Разница в том, что:

  • Средство определения схемы XML (xsd.exe) является частью пакета SDK Visual Studio и имеет базовые функциональные возможности.
  • XSD Sample Code Generator Tool (XSDObjectGen.exe) является более полнофункциональным инструментом с более расширенными функциями и выпускается отдельно.

Чтобы дать вам некоторое представление, вот сводный список функций для XSDObjectGen.exe:

  • Поддержка наиболее популярных конструкций XML-схем
  • Поведение перечислителя и коллекции для повторяющихся элементов
  • Модель программирования, соответствующая схеме
  • Автоматическая под-построение классов
  • Предотвращение коллизий имен
  • Интеграция с интегрированной средой разработки Visual Studio
  • Специальная логика обработки для типов DateTime
  • Поддержка многокомпонентной схемы
  • Сериализация пространства имен XML
  • Поддержка дополнительных и последовательностей
  • Поддержка выбора
  • Группа подстановки
  • Метод MakeSchemaCompliant
  • Необязательная обработка ссылочного типа
  • Соответствие базовому профилю WS-I.org
  • Поддержка нескольких языков программирования
  • События обхода по глубине

Подробнее о деталях эти функции см. в файле документации XSDObjectGen.doc (доступно в C:Program FilesXSDObjectGenerator после установки средства).

6
ответ дан 21 October 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: