Валидация XML
От: _ustas_ Украина  
Дата: 20.12.11 14:48
Оценка:
Помогите пожалуйста разобраться.
Есть такой xml — ответ от вебсервиса

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xsi:noNamespaceSchemaLocation="my.xsd">
   <soapenv:Body>
      <getDeviceResponse>
         <device/>
      </getDeviceResponse>
   </soapenv:Body>
</soapenv:Envelope>


Пытаюсь сочинить my.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <xs:import namespace="http://schemas.xmlsoap.org/soap/envelope/"/>
  <xs:element name="getDeviceResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="device"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="device" type="xs:string"/>
</xs:schema>


Не работает
Т.е. наружные элементы
soapenv:Envelope
soapenv:Body

оно валидирует в соответствии с xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">, а вот далее для noNamespaceSchemaLocation почему-то игнорируется...
Как заставить преверять, что внутри <soapenv:Body> обязан идти <getDeviceResponse> ?
Заранее благодарен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.