xsi:schemaLocation
состоит из двух частей пространства имен URI и URL, который используется для получения документа XML-схемы. В вашем случае, как точно такие же строки, поэтому следующие работы:
ссылающихся на документ удаленной схемы
<?xml version="1.0" encoding="UTF-8"?>
<indexdata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.LevTechInc.com/Schemas/IXML.xsd http://www.LevTechInc.com/Schemas/IXML.xsd"
xmlns="http://www.LevTechInc.com/Schemas/IXML.xsd">
<source creator="Txt2Arc" version="3.0" time="2017-01-20T14:41:49"/>
<fonts>
<font id="0">
<fname>Arial</fname>
<aname>Arial</aname>
</font>
</fonts>
</indexdata>
Но тестовый документ не является действительным по отношению к схеме на http://www.LevTechInc.com/Schemas/IXML.xsd, потому что некоторые элементы не должны находиться в пространстве имен http://www.LevTechInc.com/Schemas/IXML.xsd
(source
и fonts
), и элемент отсутствует (records
).
Наивный способ исправить ваш тестовый документ будет ввести xmlns=""
в нескольких местах, чтобы избежать элементов, оканчивающиеся в пространстве имен по умолчанию. Но лучшее решение, чтобы превратить декларации пространства имен по умолчанию:
xmlns="http://www.LevTechInc.com/Schemas/IXML.xsd"
в декларацию с префиксом:
xmlns:ixml="http://www.LevTechInc.com/Schemas/IXML.xsd"
и использовать его только на одном элементе, который должен быть в этом пространстве имен, indexdata
. Затем документ становится
действительный экземпляр этой схемы
<?xml version="1.0" encoding="UTF-8"?>
<ixml:indexdata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.LevTechInc.com/Schemas/IXML.xsd http://www.LevTechInc.com/Schemas/IXML.xsd"
xmlns:ixml="http://www.LevTechInc.com/Schemas/IXML.xsd">
<source creator="Txt2Arc" version="3.0" time="2017-01-20T14:41:49"/>
<fonts>
<font id="0">
<fname>Arial</fname>
<aname>Arial</aname>
</font>
</fonts>
<records></records>
</ixml:indexdata>
спасибо, что, кажется, работал. –
@DaveReam Рад это услышать. Если мой пост ответил на ваш вопрос, пожалуйста, подумайте о его принятии. Благодаря! Дополнительная помощь при принятии ответа: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work. –