3

これは私の oozie workflow.xml のスニペットです

<property>
   <name>statement</name>                   
   <value>${statement}</value>
</property>

ステートメントには、'>'、'<' などの文字が含まれる場合があります。ステートメントに '>' (エンコードなし) が含まれている場合、ジョブは正常に実行されますが、ステートメントに '<' が含まれている場合、ジョブはエラー「JA007: Error on line」で失敗します。 : エレメントのコンテンツは整形式の文字データまたはマークアップで構成されている必要があります

例 case a: statement = "x>3;y>4" (エラーなし) case b: statement = "x>3;y<4" (JA007)

4

2 に答える 2

1

根本的な問題が見つかりました。SAXBuilder は、この行をうまく解析できます "x>2"

しかし、次の行「x<2」の例外で失敗します

">" と "<" はどちらも xml の特殊文字であり、理想的には動作が同じである必要があります。

于 2012-12-12T13:57:18.707 に答える
0

SAX パーサーは、左括弧を子要素タグの開始として読み取りますが、右括弧は要素タグの終わりを示します。パーサーが現在要素タグ内にない場合、右括弧はおそらく有効であると見なされ、受け入れられます。

これをまだ解決していない場合は、ステートメントを次のように定義して、XML の左右の括弧をエスケープします。

statement=x&gt;3;y&lt;4

これはプロパティ ファイルでは問題なく機能しますが、-Dkey=value表記法を使用してコマンド ラインから変数を渡す場合は、アンパサンドがシェルによって誤って解釈されないように、引数を引用符で囲む必要があります。

"-Dstatement=x&gt;3;y&lt;4"
于 2012-12-13T00:06:56.487 に答える