XSD Sсhema Validation and .NET

Seryi
Ник закрыт как дубликат.
Posts: 6238
Joined: 14 Mar 2001 10:01
Location: .MD -> .SI -> .SE -> .AR.US -> .MD

XSD Sсhema Validation and .NET

Post by Seryi »

Вот такой вопрос:
Можно ли успешно провалидейтать xml документ, если у root elementa нет никакого неймспейса?

Допустим есть xml документ, где root element не ассоциируется с никаким неймспейсом. типа так

Code: Select all

<doc>
<description>some description</description>
</doc>


написана xsd схема под него. типа так

Code: Select all


<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="TargetDocument"
targetNamespace="someNamespace"
elementFormDefault="qualified" xmlns="someNamespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="doc" type="_doc" />

<xs:complexType name="_doc">
   <xs:sequence minOccurs="1" maxOccurs="1">
      <xs:element name="description" type="xs:string" />
   </xs:sequence>
</xs:complexType>

</xs:schema>


Пытаясь запустить валидацию получаю ошибку что в xml-документе root элемент не ассоциирован с никаким неймспейсом.
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Re: XSD Sсhema Validation and .NET

Post by Sabina »

Seryi wrote:
Допустим есть xml документ, где root element не ассоциируется с никаким неймспейсом. типа так

Code: Select all

<doc>
<description>some description</description>
</doc>



Не совсем опнтяно что вы имеете в виду под "root element не ассоциируется с никаким неймспейсом" ?

Он что у вас так прям и выглядит <doc> ?
А как тогда узнать в соответствии с какой schema нужно делать validation?

Должно быть что-нить вроде:

<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="doc.xsd">

Сабина
Seryi
Ник закрыт как дубликат.
Posts: 6238
Joined: 14 Mar 2001 10:01
Location: .MD -> .SI -> .SE -> .AR.US -> .MD

Re: XSD Sсhema Validation and .NET

Post by Seryi »

Sabina wrote:Не совсем опнтяно что вы имеете в виду под "root element не ассоциируется с никаким неймспейсом" ?

Он что у вас так прям и выглядит <doc> ?
А как тогда узнать в соответствии с какой schema нужно делать validation?

Должно быть что-нить вроде:

<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="doc.xsd">

Сабина


Да, <doc> у меня прямо так и выглядит. Я знаю что это не совсем правильно, но в таком виде я получаю документы из другой системы и не могу этого менять.
Можно ли как-то провести валидацию в таком случае, не меняя <doc>?
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Re: XSD Sсhema Validation and .NET

Post by IA72 »

Seryi wrote:
Sabina wrote:Не совсем опнтяно что вы имеете в виду под "root element не ассоциируется с никаким неймспейсом" ?

Он что у вас так прям и выглядит <doc> ?
А как тогда узнать в соответствии с какой schema нужно делать validation?

Должно быть что-нить вроде:

<doc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="doc.xsd">

Сабина


Да, <doc> у меня прямо так и выглядит. Я знаю что это не совсем правильно, но в таком виде я получаю документы из другой системы и не могу этого менять.
Можно ли как-то провести валидацию в таком случае, не меняя <doc>?


Если в .NET, то посмотрите XmlValidatingReader с ValidationType.Schema
и его Schemas коллекцию.
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Re: XSD Sсhema Validation and .NET

Post by Strannik223 »

IA72 wrote: Если в .NET, то посмотрите XmlValidatingReader с ValidationType.Schema
и его Schemas коллекцию.


Угу, только ValidationType еще ручками надо проставить а то по дефолту DTD по-моему стоит
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Re: XSD Sсhema Validation and .NET

Post by Strannik223 »

dup

Return to “Вопросы и новости IT”