Как программно определить, является ли XML-схема well-formed и валидной?

Vladimir777
Дата: 29.01.2010 12:02:17
Я создал XML-схему (не используя специализированные редакторы, а также не экспортируя DataSet в XSD). Могу ли я программно проверить, является ли XSD well-formed и валидной?
Наподобие того, как это делает Altova XmlSpy.
Honda 333
Дата: 29.01.2010 12:05:02
Если просто загрузится в XDocument - валидная.
Vladimir777
Дата: 29.01.2010 13:20:54
Если в исходном файле xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:simpleType name="stringtype">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:complexType name="ship">
		<xs:sequence>
			<xs:element name="name" type="stringtype"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
изменить тип элемента "name" на несуществующий:
<xs:element name="name" type="stringtypeXXX"/>
то при загрузке через код C#:
XDocument xDoc = XDocument.Load("test.xsd");
ошибка не выдается. Зато при проверке в Altova XMLSpy показывает, что файл well-formed, но не валидный!
Необходима именно такая программная проверка XML-схемы, которая показывает любой баг схемы.
Диез
Дата: 30.01.2010 21:27:09
Vladimir777,

Для документов XSD есть своя XSD :)

http://www.w3.org/2001/XMLSchema.xsd

Ну а дальше в гугле: "c# validate xml by xsd"
Абсолют
Дата: 30.01.2010 23:05:45
Vladimir777
...
ошибка не выдается. Зато при проверке в Altova XMLSpy показывает, что файл well-formed, но не валидный!
Необходима именно такая программная проверка XML-схемы, которая показывает любой баг схемы.


Here we go!
Vladimir777
Дата: 01.02.2010 16:47:33
Спасибо!
bured
Дата: 01.02.2010 17:18:09
Абсолют
Vladimir777
...
ошибка не выдается. Зато при проверке в Altova XMLSpy показывает, что файл well-formed, но не валидный!
Необходима именно такая программная проверка XML-схемы, которая показывает любой баг схемы.


Here we go!

это-то сейчас одной строкой делается
xDocument.Validate
у него вопрос как проверить саму xsd?
bured
Дата: 01.02.2010 17:22:40
очевидно какая-то схема для самого XSD нужна.