Я делаю файлы схемы для большого XML-файла, где его XSD-файл использует множество других файлов схемы, которые он включает в себя из других младших файлов схемы. Каждый раз, когда я пытаюсь проверить его, он приходит и говорит, что он не может найти информацию о схеме для элемента.Почему XML-проверка не находит мой XSD?
Я попытался добавить targetNamespaces
или использовать import
, но он продолжает придумывать ошибки. Файл Config XSD содержит все другие файлы меньшей схемы без каких-либо проблем.
<Config xmlns="C:\Users\xs\Desktop\Config.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="C:\Users\xs\Desktop\Config.xsd">
<test>
<test2>
<TestDatabase Key="no">
<Class>blablabla</Class>
</TestDatabase>
<TestTimetable Key="no">
<Class>blablabla</Class>
<Report>
<Component>1</Component>
<Connection>1</Connection>
</Report>
<Connect>
<Delay>15</Delay>
<Period>30</Period>
</Connect>
<Abc>
<Factory>jk</Factory>
<Url>www.jk.com</Url>
<Topic>a</Topic>
<Queue>1</Queue>
<User>p1</User>
<Password>xxx</Password>
</Abc>
</TestTimetable>
</test2>
</test>
</Config>
Файл схемы для файла XML Config:
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="file:///C:\Users\xs\Desktop\TestDatabase.xsd" />
<xs:include schemaLocation="file:///C:\Users\xs\Desktop\TestTimetable.xsd" />
<xs:element name="Config">
<xs:complexType>
<xs:sequence>
<xs:element name="Test">
<xs:complexType>
<xs:sequence>
<xs:element name="Test2">
<xs:complexType>
<xs:sequence>
<xs:element name="TestDatabase" type="TestDatabaseType" />
<xs:element name="TestTimetable" type="TestTimetableType" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
И TestTimetableType
иметь свой собственный включает в себя от схем, как Report
и Connect
.
Это может помочь, если вы показать весь файл Config.xsd (вы вышли из хз: элемент схемы и его атрибуты), и если вы сообщаете конкретные сообщения об ошибках. Возможно, проблема связана с пространствами имен. – Kevin