Здравствуйте, мне нужно показать массив строк в XSD. Я пробовал это, может ли кто-нибудь помочь мне написать это правильно. Спасибо.

Что печатает

<numbers>13 32 23</numbers>

Текущий XSD

<xs:element name="numbers" minOccurs="0" maxOccurs="1"> 
    <xs:simpleType>
          <xs:list itemType="xs:string">                                                     

          </xs:list>
    </xs:simpleType>

То, что мне нужно, находится ниже.

<numbers>
   <number>13</number><number>32</number>
</numbers>
3
Zeus 4 Апр 2014 в 19:37

2 ответа

Лучший ответ

Начать можно с этого:

<?xml version="1.0" encoding="utf-16"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="numbers">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" name="number" type="xs:unsignedByte"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Числа будут сложным типизированным элементом, принимающим только содержимое элемента.

6
Petru Gardea 14 Июн 2017 в 17:00

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

Примитивные типы

 <xsd:element name="A"/>

Означает, что буква A обязательна и должна появляться ровно один раз .

<xsd:element name="A" minOccurs="0"/>

Означает, что A является необязательным и может встречаться не более одного раза .

Массивы / Списки

<xsd:element name="A" maxOccurs="unbounded"/>

Означает, что буква A обязательна и может повторяться неограниченное количество раз

<xsd:element name="A" minOccurs="0" maxOccurs="unbounded"/>

Означает, что A необязательно и может повторяться неограниченное количество раз

7
Ignacio Alorre 5 Дек 2018 в 08:28