Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2015, 13:20   #1
Lucien_Lachance
Новичок
Джуниор
 
Регистрация: 14.06.2015
Сообщений: 2
Вопрос XSD: Атрибут не объявлен / Элемент имеет недопустимый дочерний элемент

Пожалуйста, помогите в написании XSD-схемы, описывающий XML-документ:

Код HTML:
<?xml version="1.0" encoding="utf-8"?>
<games xmlns:gp="game-properties">
  <cat id="1" name="Шутеры">
    <game id="1" gp:Идентификатор="111" name="Quake">
      <variant id="1" gp:ВерсияИгры="1.08" gp:ТипВерсии="DOS"/>
      <variant id="2" gp:ВерсияИгры="1.09" gp:ТипВерсии="WinQuake"/>
      <variant id="3" gp:ВерсияИгры="1.09" gp:ТипВерсии="GLQuake"/>
    </game>
   </cat>
</games>
При проверка по написанной схеме получаю две ошибки:
- Атрибут "game-properties:gp:Идентификатор" не объявлен (аналогично для ВерсияИгры и ТипВерсии);
- Элемент game имеет недопустимый дочерний элемент variant.

Ниже привожу саму схему и скриншот окна Visual Studio XML Editor, где под подсвечены эти ошибки.

Код HTML:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="games">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="cat">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="game">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="variant">
                        <xs:complexType>
                          <xs:attribute name="id" type="xs:positiveInteger"/>
                          <xs:attribute name="ВерсияИгры" type="xs:decimal"/>
                          <xs:attribute name="ТипВерсии" type="xs:string"/>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:attribute name="id" type="xs:positiveInteger"/>
                    <xs:attribute name="Идентификатор" type="xs:positiveInteger"/>
                    <xs:attribute name="name" type="xs:string"/>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
              <xs:attribute name="id" type="xs:positiveInteger"/>
              <xs:attribute name="name" type="xs:string"/>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
</xs:schema>
Помогите, пожалуйста, исправить ошибки, читал про XSD вот тут http://www.w3schools.com/Schema/el_attribute.asp , но не нашел решения, как обойти атрибуты, который в XML описаны как принадлежащие к пространству имен. Также не могу понять почему вторая и последующие записи variant не воспринимаются.
Изображения
Тип файла: png XSDErrors.png (11.2 Кб, 52 просмотров)
Lucien_Lachance вне форума Ответить с цитированием
Старый 14.06.2015, 17:55   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Имеет право ругаться.
Вложения
Тип файла: rar Quake.rar (718 байт, 19 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 14.06.2015, 18:51   #3
Lucien_Lachance
Новичок
Джуниор
 
Регистрация: 14.06.2015
Сообщений: 2
По умолчанию

Большое вам спасибо! Буду читать, как это все работает!
Lucien_Lachance вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выбрать второй дочерний элемент на JQuery Gstar JavaScript, Ajax 2 27.01.2014 06:28
Вывод элементов списка по правилу: текущий элемент, предыдущий элемент java_shkiper Помощь студентам 4 14.10.2013 17:42
Растянуть дочерний элемент. Ninazu HTML и CSS 12 19.03.2013 10:00
Одномерный массив. Необходимо заменить последний положительный элемент на второй элемент массива кумитэ Паскаль, Turbo Pascal, PascalABC.NET 1 19.12.2011 16:44
Как заменить в массиве (двухмерном) строку, которая имеет наибольший элемент! gylayko Помощь студентам 13 15.11.2011 20:07