xsi:schemaLocation
は二つの部分、名前空間URIおよびXMLスキーマ文書を取得するために使用されるURLを持っています。
リモートスキーマ文書
<?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を参照してください。 –