2017-03-26 3 views
0

私は繰り返しの内容を略語にするために.dtdファイルで定義されたエンティティを利用するXMLファイルを作成しました。このファイルは、検証に使用されるXSDファイルも参照します。 .dtdファイルは検証に使用されず、<!ENTITY ...>の宣言とコメント以外の内容は含まれていません。エンティティを定義する目的でのみDTDを使用するのは不適合ですか?

MS Visual Studioはこの配置を受け入れ、エラーを報告しません。 (私は、XSDが実際にXMLファイルの内容を一時的に混乱させ、期待される検証エラーが発生するのを観察することによって、検証に使用されていることをテストしました)。私は3つのファイルをWebベースのバリデーターに提出しようとしました。 Webベースのバリデーターは、2000年あまりのエラーのリストを吐き出しました。これらのエラーは、すべて「Element type」ElementNameの形式を宣言しなければなりませんでした。これは、DTDファイルに追加のコンテンツが含まれており、検証の目的に役立つことを期待していることを示唆しています。

Visual Studioの動作は私にとっては有用ですが、ここでは関連する標準から技術的に逸脱していますか?

XMLファイルの最初の数行は、次の形式です:

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<!DOCTYPE FooCollection SYSTEM "entities.dtd"> 

<FooCollection 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="FooCollection.xsd"> 
    ... 

答えて

0

あなたのXMLファイルがなく有効を整形です。それは完全にOKです(そして、準拠)。 XMLパーサーに妥当性検査を依頼すると、エラーが発生しますが、正式な検査のみを行うように要求すると、エラーは発生しません。

関連する問題