Схема XML: как указать атрибут с пользовательским типом 'simpleType'? - PullRequest
4 голосов
/ 19 мая 2010

В своем определении схемы XML я пытаюсь ограничить значение атрибута целым числом от 0 до 100.

Со ссылкой на пример схемы ниже, я хочу, чтобы атрибут 'attr' в элементе 'root' имел это ограничение. Чтобы достичь этого, я определяю simpleType 'Percentage' и устанавливаю это как 'type' из 'attr'.

Однако мой редактор схем XML (VS 2008) помечает атрибут как имеющий проблему: «Тип« Процент »не объявлен или не является простым типом».

<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" id="test" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://testtttt">
  <xs:simpleType name="Percentage">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="100"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="root">
    <xs:complexType>
      <xs:attribute name="attr" type="Percentage" use="optional" />
    </xs:complexType>
  </xs:element>

1 Ответ

5 голосов
/ 19 мая 2010

Похоже, вам не хватает объявления пространства имен в корневом элементе схемы:

xmlns="http://testtttt"

Таким образом, ссылка на тип недействительна.

...