0

主に Web アプリケーション用の独自のテンプレート エンジンを作成しています。

実際には、独自の XML タグと HTML が混在しています。

サンプルは次のとおりです。

<lp:view xmlns:lp="http://sminit.com/view" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://sminit.com/view view.xsd ">
    <lp:list name="my_items">

        <lp:list_header>

            <table>

        </lp:list_header>

        <lp:list_item>

              <tr><td>$title$</td></tr>

        </lp:list_item>

        <lp:list_footer>
                </table>
        </lp:list_footer>

    </lp:list>
</lp:view> 

簡単な説明: 「lp」で始まるタグは、私のテンプレート エンジンに属し、「処理命令」のようなものです。lp:view はルート ノードであり、次に lp:list ノードがあり、何らかのデータ ソースを受け取るとリストが生成されます。最初に lp:list_header の内容が含まれ、次に lp:list_item の内容が適切な回数繰り返されます ($ を置き換えます)。 title$ を実際のデータで削除しますが、ここでは問題ありません)、lp:list_footer ノードのコンテンツを追加します。ご覧のとおり、このため、HTML タグ「テーブル」がタグ間で分割されています。

ここで 2 つの大きな問題に遭遇しました。2. html タグ内にいる場合、Eclipse はコードヒントを表示しません。(コードヒント: 「class」や「id」など、このタグで使用される可能性のある属性)

私が奇妙なフリークな質問をしていることは理解していますが、私に指示できる XSD の専門家がここにいる可能性があります。Eclipse は、私の xml テンプレート ファイルを次のように処理する必要があります。それらは他の何よりも優先されます。そのタグからのエラー (必須属性の欠落、必須の子要素の欠落など) のみを表示する必要があります。2. 他のすべてのタグ (山括弧内のもの) は HTML タグです。Eclipse はそれらのコード ヒントを表示する必要がありますが、何かが「正しくない」場合 (私のサンプルのように: 終了 /table タグがありません) -- Eclipse は文句を言うべきではありません。

これが可能であることを願っています。

ありがとう!

4

2 に答える 2

0

これは部分的な回答ですが、コメントに入力するには長すぎるため、回答として掲載します。

閉じられていないタグについて Eclipse が不平を言うのを止めるには、次の<![CDATA[..]]ようにコンテンツをセクションでラップする必要があります。

<lp:view xmlns:lp="http://sminit.com/view" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://sminit.com/view view.xsd ">
  <lp:list name="my_items">

    <lp:list_header>

        <![CDATA[ <table> ]]>

    </lp:list_header>

    <lp:list_item>

          <tr><td>$title$</td></tr>

    </lp:list_item>

    <lp:list_footer>
            <![CDATA[ </table> ]]>
    </lp:list_footer>

</lp:list>

それらはテキストとして扱われ、Eclipse は文句を言いませんが、その場合、CDATA セクション内の Eclipse 補完が失われます。

HTML タグの補完を機能させるには、次のように、ルート タグに XHTML のデフォルトの名前空間を追加してみてください。

<?xml version="1.0" ?>
<lp:view xmlns="http://www.w3.org/1999/xhtml" xmlns:lp="http://sminit.com/view" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://sminit.com/view view.xsd ">
  <lp:list name="my_items">

    <lp:list_header>

        <![CDATA[ <table> ]]>

    </lp:list_header>

    <lp:list_item>

          <tr><td>$title$</td></tr>

    </lp:list_item>

    <lp:list_footer>
            <![CDATA[ </table> ]]>
    </lp:list_footer>

</lp:list>

編集: XHTML スキーマではルート要素が<html>. <html>Eclipse で試したところ、HTML タグの補完は、ドキュメントのどこかに最初にタグを挿入したときにのみ機能し始めます。たぶん、他の人が体重を量ることができます。

于 2011-12-22T09:45:48.107 に答える
0

HTML をCDATAブロックでラップする必要があります。これにより、XML パーサーはコンテンツ ( unclosed <table>) を壊れたタグではなくプレーン テキストと見なします。

    <lp:list_header><![CDATA[

        <table>

    ]]></lp:list_header>
于 2011-12-22T09:40:55.137 に答える