0
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"   
           xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">
  <xs:import namespace="http://ns.adobe.com/AdobeInDesign/4.0/"
             schemaLocation="aid.xsd"/>
  <xs:element name="Table">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="Cell"/>
      </xs:sequence>
      <xs:attribute ref="aid:table" use="required"/>
      <xs:attribute ref="aid:tcols" use="required"/>
      <xs:attribute ref="aid:trows" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Cell">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element minOccurs="0" 
                    maxOccurs="unbounded" 
                    ref="mathImage"/>
      </xs:sequence>
      <xs:attribute ref="aid:ccols" use="required"/>
      <xs:attribute ref="aid:ccolwidth" use="required"/>
      <xs:attribute ref="aid:crows" use="required"/>
      <xs:attribute ref="aid:table" use="required"/>
      <xs:attribute ref="aid:theader"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="mathImage">
    <xs:complexType>
      <xs:attribute name="href" 
        use="required" 
        type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

私が直面している問題は、Adobe InDesign の名前空間が無効であり、スキーマの場所でもないことです。誰かがこの状況に代わるものを持っていますか?

私の問題の要点は次のとおりです。作成したスキーマで Adob​​e InDesign のテーブルを検証しようとしています。スタイル情報を取得する必要があるため、テーブルを CALS ではなく InDesign テーブルとしてエクスポートすることにしました。スキーマの残りの検証済みを既に作成しましたが、この部分で問題が発生しています。

4

1 に答える 1

0

問題の説明を正しく理解している場合、次の 3 つのスキーマ ドキュメントからスキーマを構築しようとしています。

  1. 問題の説明に示されているスキーマ ドキュメントを含む、またはインポートするメイン スキーマ ドキュメント (表示されていません)。
  2. 問題の説明に示されているスキーマ ドキュメント。
    • 名前空間にバインドしない要素 Table、Cell、および mathImage を宣言します。
    • 名前空間をインポートし、適切な宣言を見つける場所としてhttp://ns.adobe.com/AdobeInDesign/4.0/ローカル スキーマ ドキュメントをポイントします。aid.xsd
  3. スキーマ文書 aid.xsd は示されていませんが、スキーマ文書 2 から参照されています。スキーマ文書 2 の宣言から、このスキーマ文書は次のように推測できます。
    • ローカルに配置する必要があります (スキーマ ドキュメント 2 と同じディレクトリにあり、相対参照を使用してそれを指す必要があります)。
    • http://ns.adobe.com/AdobeInDesign/4.0/ターゲット名前空間として宣言する必要があります
    • table、tcol、trows、ccol、ccolwidth、crows、および theader という名前の最上位属性を宣言する必要があります。

エラー メッセージは、「Table_ASVAB.xsd」という名前のスキーマ ドキュメントの読み取りに関する問題を示しています。このファイル名がスキーマ ドキュメント 1 を示しているのか、スキーマ ドキュメント 2 を示しているのかは、あなたの説明からはわかりません。

Table_ASVAB.xsd が問題の説明に示されているスキーマ ドキュメントである場合、問題の考えられる原因は、エラー メッセージに示されているものから、実際にはそうでないものを差し引いたものです。

  • ドキュメントが見つかりませんでした。かなり可能性があります: さまざまなバリデーターがさまざまな場所でスキーマ ドキュメントを探します。バリデーターのドキュメントを参照して、スキーマ ドキュメントの場所を指定する方法を確認する必要があります。あなたの説明からは、スキーマドキュメントの場所をバリデーターに現在どのように伝えているか、または伝えようとしているのかが明確ではありません。

  • ドキュメントを読み取れませんでした。また、バリデータを実行しているプロセスがスキーマ ドキュメントの読み取り権限を持っていることを確認してください。

  • ドキュメントのルート要素が xsd:schema ではありません。このエラー メッセージの原因ではありません。問題の説明に示されているスキーマ ドキュメントのルート要素schema であり XSD 名前空間にあることがわかります。

Table_ASVAB.xsd が問題の説明に示されているスキーマ ドキュメントではなく、メイン スキーマ ドキュメントである場合、同じ原因が考えられます (また、適切な名前空間バインディングとそのルート要素の名前があることも確認する必要があります)。

副次的な問題に関するいくつかのコメント:

スキーマ ドキュメントをaid.xsd自分で提供する場合、Adobe が製品をサポートしているかどうかは問題ではありません。スキーマ バリデータは、指定された名前空間のスキーマ ドキュメントを、adobe.com の URI からと同じようにハード ディスクから読み取ります。aid.xsd を自分で提供していない場合、(少なくとも) 2 つの問題があります。その名前空間の既存のスキーマ ドキュメントを見つける必要があり、インポートの schemaLocation 属性で適切な URI を指定する必要があります。 .

インポートとインクルードの違いは単純です。include呼び出し元のスキーマ ドキュメントのターゲット名前空間で追加のコンポーネントを宣言するスキーマ ドキュメントをフェッチします。importインポートするスキーマ ドキュメントが、インポートされた名前空間内のコンポーネントに依存することを宣言します (この依存関係は、通常、それらのコンポーネントへの参照の形式を取ります。表示するスキーマ ドキュメントの場合、それは属性aid:tableなどへの参照です。スキーマを含めるのはエラーです異なるターゲット名前空間を指定するドキュメント; 現在のスキーマ ドキュメントのターゲット名前空間と同じ名前空間をインポートするのはエラーです. この点で混乱に苦しんでいる場合は、XSD の優れたチュートリアルの紹介を参照することをお勧めします.

于 2012-12-19T19:54:33.683 に答える