1

この XML は有効ではないと感じています。誰か理由を説明してもらえますか?

要素名のドットに何かする必要があると思いますか?

Estate_price.price_suggestion

この XML について他に有効でないものはありますか?

XML

 \\ <?xml version="1.0" encoding="UTF-8"?>

<iad>
  <DataTag>
    <element id="0">
      <changed_string>content</changed_string>
      <no_of_bedrooms>content</no_of_bedrooms>
      <published_string>content</published_string>
      <mmo>content</mmo>
      <postcode>content</postcode>
      <utmx>content</utmx>
      <utmy>content</utmy>
      <disposed>content</disposed>
      <property_type>content</property_type>
      <isprivate>content</isprivate>
      <heading>content</heading>
      <published>content</published>
      <estate_price.price_suggestion>content</estate_price.price_suggestion>
      <ownership_type>content</ownership_type>
      <estate_size.useable_area>content</estate_size.useable_area>
      <adid>content</adid>
      <address>content</address>
      <sqmtrprice>content</sqmtrprice>
      <estate_size.primary_room_area>content</estate_size.primary_room_area>
      <location>content</location>
      <changed>content</changed>
      <orgname>content</orgname>
    </element>
    <element id="1">
      <changed_string>content</changed_string>
      <no_of_bedrooms>content</no_of_bedrooms>
      <published_string>content</published_string>
      <mmo>content</mmo>
      <postcode>content</postcode>
      <utmx>content</utmx>
      <utmy>content</utmy>
      <disposed>content</disposed>
      <property_type>content</property_type>
      <isprivate>content</isprivate>
      <heading>content</heading>
      <published>content</published>
      <estate_price.price_suggestion>content</estate_price.price_suggestion>
      <ownership_type>content</ownership_type>
      <estate_size.useable_area>content</estate_size.useable_area>
      <adid>content</adid>
      <address>content</address>
      <sqmtrprice>content</sqmtrprice>
      <estate_size.primary_room_area>content</estate_size.primary_room_area>
      <location>content</location>
      <changed>content</changed>
      <orgname>content</orgname>
    </element>
  </DataTag>
</iad>
4

4 に答える 4

6

適切な XML ドキュメントには、整形式と有効という 2 つのレベルがあります。整形式とは、XML 標準に準拠していることを意味し、有効とは、スキーマに準拠していることを意味します。

スキーマは、使用している要素と、他の要素の中に何が入るかの仕様です。DTD、XSD (W3C スキーマ)、Relax NG などを使用してスキーマを指定できます。

于 2009-09-05T16:40:49.470 に答える
2

ドキュメントが有効かどうかを確認するには、検証対象のスキーマが必要です。

XML 仕様で禁止されている要素名としての Estate_price.price_suggestion については何もありませんが、スキーマは、その要素 (または他の要素) を配置することを許可しないドキュメントのコンテンツと構造に制約を課す可能性があります。は。

于 2009-09-05T17:06:12.460 に答える
1

Dave Markle は、XML プロローグにバックスラッシュ プレフィックスを付けるべきではないという点で正しいです (また、デフォルトのプロローグ値のみを指定するため、バックスラッシュはオプションであることに注意してください)。

要素名のドットについては、開始タグの XML 仕様に移動すると、NameStartChar と一連の NameChar で構成される Name が含まれていることがわかります。NameChar セットにはたまたま文字 "." が含まれているため.、最初の文字でない限り、タグ名に a を含めることは完全に有効です。

于 2009-09-05T17:11:31.290 に答える
0

XML は整形式であり、検証を行わない XML パーサーで解析する必要があります。たとえば、私は XOM を使用しました ( http://www.xom.nuから)

        try {
        new nu.xom.Builder().build(new StringReader(s));
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("OK");

ただし、属性のタイプについて仮定を行う XML ツールがいくつかあります。id 属性は、タイプ ID であると想定される場合があります。このタイプは、ID 値を _A-Za-z ('0-9'、'-'、または '.' ではない) でのみ開始できる有効な XML 名に制限します。したがって、XML の形式が整っていても、ID に数値を使用するのは適切ではない可能性があります。すでに指摘したように、DTD またはスキーマがある場合、ID が強制的に ID 型である可能性があり、検証が失敗する可能性があります。

あなたの投稿からは、すでに問題が発生しているかどうかは明確ではありません。問題がある場合は、エラー メッセージを投稿すると役立つ場合があります。

于 2009-09-09T21:19:24.630 に答える