Как правильно включить schemalocation для ссылки на файл xsd в xml
Я создаю файл грамматики xml для распознавания речи, поэтому для этого я создал файл лексики и добавил элементы лексикона, как показано в схеме, что дает мне ошибки
- схема, указанная в этом месте в вашем документе, содержит ошибку
- Время операции истекло
Выделенная линия вызывает ошибку
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
**http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"**
alphabet="x-microsoft-ups" xml:lang="en-IN"
Что я должен делать?
1 ответ
Схема, на которую вы указываете, действительна. Дело в том, что схемы, размещенные на сайте W3C, иногда ограничиваются; тем более в вашем случае, так как pls.xsd ссылается на xml.xsd (этот наверняка задушен).
W3C ограничивает ответы на хорошо известные XSD как средства защиты от ненужного трафика.
Загрузите свою локальную копию и вместо этого сделайте ссылку на нее, и все должно быть хорошо (при условии, что все остальное работает для вас).
Вот как должен выглядеть XML-файл на основе ваших комментариев:
<?xml version="1.0" encoding="utf-8"?>
<lexicon version="1.0"
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon file://C:/some/folder/where/your/xsd/file/is/pls.xsd"
alphabet="x-microsoft-ups" xml:lang="en-IN">
<lexeme>
</lexeme>
</lexicon>
Вот как должна выглядеть верхняя часть pls.xsd (после изменения расположения схемы для xml.xsd предположим, что они находятся в одной папке):
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Externals changed by QTAssistant (http://www.paschidev.com) -->
<!--
This is a draft schema for the XML language defined in the
Pronunciation Lexicon Specification
(latest version at <http://www.w3.org/TR/pronunciation-lexicon/>)
At the time of writing, the specification as well as this schema are
subject to change, and no guarantee is made on their accuracy or the fact
that they are in sync.
Last modified: $Date: 2007/12/11 12:08:40 $
Copyright û 2006 World Wide Web Consortium, (Massachusetts Institute
of Technology, ERCIM, Keio University). All Rights Reserved. See
http://www.w3.org/Consortium/Legal/.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="http://www.w3.org/2005/01/pronunciation-lexicon" targetNamespace="http://www.w3.org/2005/01/pronunciation-lexicon" elementFormDefault="qualified" version="1.0">
<xs:annotation>
<xs:documentation>Importing dependent namespaces</xs:documentation>
</xs:annotation>
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
...
</xs:schema>
Все отлично работает в VS2010 и выше.