Как мне указать список обязательных дочерних элементов xml, которые НЕ должны быть в последовательности?

2

Следующий XML файл проверяет наличие прилагаемого документа xsd. Однако, когда я начинаю удалять такие элементы, как из xml, он проверяет STILL!?

Как написать xsd, который заставляет включать элементы?

<?xml version="1.0" encoding="UTF-8"?>
<Video>
  <Title>
  </Title>
  <Description>
  </Description>
  <Contributor>
  </Contributor>
  <Subject>
  </Subject>
</Video>

Тогда у меня есть xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UploadXSD"
    targetNamespace="http://tempuri.org/UploadXSD.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/UploadXSD.xsd"
    xmlns:mstns="http://tempuri.org/UploadXSD.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="Video">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Title" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Description" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Contributor" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Subject" minOccurs="1" type="xs:string"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>
Теги:
xsd
xml-validation

2 ответа

1
Лучший ответ

Ваше целевое пространство имен в xsd должно соответствовать пространству имен xml, который вы пытаетесь проверить, т.е.

<Video xmlns="http://tempuri.org/UploadXSD.xsd">
  <Title>
  </Title>
  <Description>
  </Description>
  <Contributor>
  </Contributor>
  <Subject>
  </Subject>
</Video>
  • 0
    спасибо что работает ....
  • 0
    Это одна из проблем в коде. Это не имеет ничего общего с вопросом в названии. @ Райан Бруннер ответил на заданный вопрос. Последовательность должна быть в порядке.
Показать ещё 1 комментарий
4

Если вы используете xs:all, а не xs:sequence, элементы могут отображаться в любом порядке. Существуют некоторые дополнительные ограничения - например, элементы не могут быть указаны несколько раз с помощью all (я не уверен, что вы намереваетесь использовать это, ваша схема в настоящее время допускает это.)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню