XSD Pattern ограничение.Как получить стенографию - PullRequest
0 голосов
/ 31 января 2019

У меня есть грамматика XSD, где один SimpleType должен быть ограничен до 6 числовыми значениями, разделенными запятыми.То есть каждый элемент имеет форму:

-?\d*\.?\d+\s*

Так как мне нужен 6-кортеж, я могу написать следующий шаблон:

<xs:pattern value="-?\d*\.?\d+\s*,\s*-?\d*\.?\d+\s*,\s*-?\d*\.?\d+\s*,\s*-?\d*\.?\d+\s*,\s*-?\d*\.?\d+\s*,\s*-?\d*\.?\d+\s*"/>

Я хотел его закорочить.Я пробовал по следующей схеме:

<xs:pattern value="(-?\d*\.?\d+\s*,){5}\s*-?\d*\.?\d+\s*" />

Но, похоже, это неправильно.Я не могу распознать ошибку.Кто-нибудь может сказать мне, почему это не так?

Заранее спасибо

1 Ответ

0 голосов
/ 31 января 2019

Каким образом это терпит неудачу?

Это работает для меня (с Saxon в качестве валидатора схемы).Со схемой

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:saxon="http://saxon.sf.net/">
  <xs:element name="top">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="(-?\d*\.?\d+\s*,){5}\s*-?\d*\.?\d+\s*" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>

этот документ действителен:

<top>1,2,3,4,5,6</top>

, а этот недействителен:

<top>1,2,3,4,5</top>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...