Nano Hash - криптовалюты, майнинг, программирование

Должны ли отсутствующие перечисляемые XML-атрибуты всегда использоваться по умолчанию?

Если атрибут, определенный как нумерованный список, отсутствует в элементе XML, должно ли первое значение в списке использоваться как значение по умолчанию, если для него не указано значение по умолчанию?

У меня есть следующее в схеме:

<xsd:simpleType name="YesNoType">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="yes"/>
        <xsd:enumeration value="no"/>
    </xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="TelephoneStructure">
    <xsd:sequence>
        <xsd:element name="TelNationalNumber" type="core:TelephoneNumberType"/>
        <xsd:element name="TelExtensionNumber" type="core:TelephoneExtensionType" minOccurs="0"/>
        <xsd:element name="TelCountryCode" type="core:TelCountryCodeType" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="TelUse" type="core:WorkHomeType"/>
    <xsd:attribute name="TelMobile" type="core:YesNoType"/>
    <xsd:attribute name="TelPreferred" type="core:YesNoType"/>
</xsd:complexType>

Я сгенерировал типы С# из приведенной выше схемы. Я ожидал, что отсутствующие атрибуты приведут к нулевым значениям, но я обнаружил, что отсутствующие атрибуты по умолчанию имеют первое значение в списке. Правильно ли это в соответствии со спецификацией XML?

12.03.2021

  • Затем заданы значения по умолчанию. См.: w3schools.com/xml/schema_simple.asp. 12.03.2021
  • Отображение из XML в C# не регулируется никакими стандартами W3C (или другими), насколько мне известно, это полностью вопрос разработчиков продукта, 12.03.2021
  • @MichaelKay Конечно, спецификация XML говорит, как следует интерпретировать XML? 15.03.2021
  • В нем говорится, что значения по умолчанию должны сообщаться приложению, но ничего не говорится о том, что приложение (здесь — ваша библиотека привязки C#) должно с ними делать. 15.03.2021

Ответы:


1

Только TelExtensionNumber и TelCountry code являются необязательными в соответствии с вашей схемой. Все остальное не является обязательным, поэтому принимает значение по умолчанию (0 для int, null для классов).

Как сделать элемент в XML-схеме необязательным?

12.03.2021
  • Когда я проверяю XML, валидатор не отмечает отсутствующие атрибуты, допускает ли необязательный только нулевые значения? 12.03.2021
  • Когда вы проверяете XML, проверяете ли вы схему или свой код? Можете ли вы опубликовать класс TelephoneStructure, перечисление YesNo и XML, который вы пытаетесь проанализировать? 12.03.2021
  • Я проверяю XML без атрибутов по схеме с помощью валидатора .Net. 13.03.2021
  • Атрибуты по умолчанию необязательны, поэтому я не уверен, к чему вы хотите. Я думаю, вы могли упустить тот факт, что я говорю об атрибутах, а не об элементах. 15.03.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..