私は繰り返しの内容を略語にするために.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">
...