Валидатор ругается на парвый тег call, хотя, по моему мнению, не должен. В чем косяк и как исправить?
service.xml
--8<------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<calls xmlns="http://www.example.com/serv"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.example.com/serv"
xsi:schemaLocation="http://www.example.com/serv service.xsd">
<call name="addUser">
<parm name="login" type="string" lenght="255"/>
<parm name="fullName" type="string" length="255"/>
</call>
<call name="delUser">
<parm name="login" type="string" lenght="255"/>
</call>
</calls>
--8<------------------------------------------------------------------
service.xsd
--8<------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:serv="http://www.example.com/serv"
targetNamespace="http://www.example.com/serv"
xsi:schemaLocation="http://www.w3.org/2001/XMLSchema
http://www.w3.org/2001/XMLSchema">
<xs:element name="calls" type="serv:calls"></xs:element>
<xs:attribute name="name" type="xs:string"></xs:attribute>
<xs:attribute name="type" type="xs:string"></xs:attribute>
<xs:attribute name="length" type="xs:string"></xs:attribute>
<xs:complexType name="calls">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="call" type="serv:call"></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="call">
<xs:sequence>
<xs:element name="parm" type="serv:parm"></xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>
<xs:complexType name="parm">
<xs:attribute name="name" type="xs:string"></xs:attribute>
<xs:attribute name="type" type="xs:string"></xs:attribute>
<xs:attribute name="length" type="xs:int"></xs:attribute>
</xs:complexType>
</xs:schema>
--8<------------------------------------------------------------------
Примечание:
Для тех, кто не догадался, уточнение: я дал два документа, service.xml - собственно XML файл, и service.xsd - файл в формате XML Schema, по которому проверяю service.xml. Начала и концы файлов обозначены линиями отреза:
--8<------------------------------------------------------------------
Ошибку выдает валидатор среды Eclipse, который умеет проверять XML по схеме. Текст ошибки:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'call'. One of '{call}' is expected.
Если вы не знаете, что такое XML Schema, то, скорее всего, не ответите на этот вопрос.
Примечание:
VVic: предположения неверны, во-первых, ругается на первый же call, даже если он один, во-вторых, если бы не был определен namespace serv, ругалось бы на xsd файл, однако service.xsd валидируется без проблем.
Примечание:
VVic: <xs:element name="call" type="serv:call"></xs:element> - должен быть именно элемент call, а serv:call тут - это комплексный тип в описании. Писал <serv:call ..>, переименовал на всякий случай тип в serv:callT - без результата. Боюсь, гадать тут бесполезно, нужно четкое понимание XML нэймспейсов и Схемы.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.