3

「整形式で有効な」XML ファイルがあります (XSD スキーマと一致し、http://xsdvalidation.utilities-online.info/でテストされています)。

XSD でこれらのコード行を使用して、次の XML 入力を制限しています<firstname>

<xsd:pattern value = "[A-Z][a-z]+" />
<xsd:minLength value = "2" />
<xsd:maxLength value = "25" />


したがって、上記の Web サイトは、<firstname>この正規表現と長さの制限に一致しない場合 (たとえば、XML ファイルの最初の名前として「5」を入力した場合)、エラーをスローし、検証しません。

しかし、XML ファイルを Firefox で開くと (XSL ファイルを使用して HTML に解析されます)、エラーはスローされず、正規表現と長さの制限に関係なく、XML ファイルに入力されたものはすべて表示されます。

XSD スキーマは、Web ブラウザーでエラーをチェックするために、このように使用することを意図していませんか? XSD の代わりに XSLT の制限を使用する必要がありますか?

4

3 に答える 3

2

XSD 検証は、要求した場合にのみ行われます。xsi:schemaLocation を指定すること自体は、検証を実行するためのリクエストを構成するわけではありません (そのように解釈する Altova などのいくつかのツールはありますが)。

ブラウザー内で動作する XSD バリデーターを実際に認識していませんが、それが存在しないというわけではありません。

于 2012-06-24T21:56:23.327 に答える
1
  • あなたはそうではないXMLバリデーターとしてウェブブラウザを使用しているようです。Webサイトは非常に多様であり、あらゆる種類のルールに違反することがあるため、Webブラウザは非常に寛容なツールです。

  • Firefoxが認識するのは、XSL変換の入力、つまり有効かどうかにかかわらずXMLファイルではなく、変換の出力であり、コンピューター上の特定のスキーマに対して必ずしも有効であるとは限りません。XSL変換の仕事は、ドキュメントを別の何か(この場合はXHTML)に変換することです。XHTMLを検証するためのスキーマがありますが、名に制限がないことは間違いないので、変換の出力はおそらく有効です。

  • XMLの整形式性(ドキュメントがペアタグなどの点でXMLであることを意味します)と妥当性には違いがあります。妥当性は特定のスキーマに関連しています。そのため、「整形式で有効」というフレーズが表示されます。

これのポイントは、HTMLでない場合にXMLを操作するための検証用XMLエディターを入手することです。ブラウザは任意のXMLを表示できますが、それだけです。ブラウザを使用してXSLTからエラーを表示する必要がある場合は、次のように実行できます。

<xsl:message terminate='yes'>message here</message>

...しかし、それはXSDとは何の関係もありません。それは別の技術です。

于 2012-06-24T20:51:27.547 に答える
1

XPath 2.0 (および XSLT 2.0) は厳密に型指定された言語であり、すべての組み込みおよびユーザー定義のスキーマ型を検証できます。

XSLT 2.0 SA (スキーマ指向) プロセッサを使用して、次のスキーマ タイプの検証を実施できます。

  1. ソース XML ドキュメント。

  2. テンプレート/(xsl:)関数または(外部的に)スタイルシートに渡されるパラメータの値。

  3. の値xsl:variable

  4. テンプレートまたは xsl:function によって生成された結果

これらの機能を適切に使用すると、変換結果の変換後の検証が不要になります

于 2012-06-24T21:52:32.443 に答える