Представление 2D-символа в XSD - PullRequest
0 голосов
/ 04 апреля 2019

Я новичок в XSD. У меня есть структура, которую мне нужно представить в XSD:

struct  
{
  int num;
  char token[10]
  char value[20][10];
} test;

Как мне упомянуть "значение" в XSD? Я могу представить другие элементы как:

<complexType name=test>
  <sequence>
    <element name='num' type='int'/>
    <element name='token' type='string' minOccurs='0' maxOccurs='unbounded'/>
  </sequence>
</complexType>

Этот XSD будет использоваться для генерации кода C ++

Спасибо

1 Ответ

1 голос
/ 15 апреля 2019

Следующая схема описывает ваши данные, создавая довольно сжатый XML.

<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid Studio 2019 (https://www.liquid-technologies.com)-->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="test">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="num" type="xs:int" />
                <xs:element name="token" type="ListOf10Chars" />
                <xs:element name="value" type="ListOf10Chars" minOccurs="20" maxOccurs="20" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="CharType">
        <xs:restriction base="xs:string">
            <xs:length value="1" />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ListChars">
        <xs:list itemType="CharType" />
    </xs:simpleType>
    <xs:simpleType name="ListOf10Chars">
        <xs:restriction base="ListChars">
            <xs:minLength value="10" />
            <xs:maxLength value="10" />
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<!-- Created with Liquid Studio 2019 (https://www.liquid-technologies.com) -->
<test>
    <num>3281</num>
    <token>A b c d e f g h i j</token>
    <value>0 b c d e f g h i j</value>
    <value>1 b c d e f g h i j</value>
    <value>2 b c d e f g h i j</value>
    <value>3 b c d e f g h i j</value>
    <value>4 b c d e f g h i j</value>
    <value>5 b c d e f g h i j</value>
    <value>6 b c d e f g h i j</value>
    <value>7 b c d e f g h i j</value>
    <value>8 b c d e f g h i j</value>
    <value>9 b c d e f g h i j</value>
    <value>0 b c d e f g h i j</value>
    <value>1 b c d e f g h i j</value>
    <value>2 b c d e f g h i j</value>
    <value>3 b c d e f g h i j</value>
    <value>4 b c d e f g h i j</value>
    <value>5 b c d e f g h i j</value>
    <value>6 b c d e f g h i j</value>
    <value>7 b c d e f g h i j</value>
    <value>8 b c d e f g h i j</value>
    <value>9 b c d e f g h i j</value>
</test>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...