2012-12-12 35 views
2

這是我Oozie的workflow.xml的片段XML特殊字符在Oozie的工作流屬性

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

聲明中可能包含的字符,如「>」,「<」等。當語句中包含「>」(如果語句包含「<」,則作業失敗,並顯示錯誤「JA007:線上錯誤:元素的內容必須包含格式正確的字符數據或標記」

例如 情況a:statement =「x> 3; y> 4」(無錯誤) case b:statement =「x> 3; y < 4「(JA007)

回答

0

發現潛在的問題。 SAXBuilder的可以解析這片線以及 「X> 2」

但失敗,異常爲以下行 「×< 2」

兩者「>」,「<」是XML特殊字符並且理想,行爲應該是一樣的。

0

SAX解析器正在讀取左括號作爲子元素標記的開始,而右括號表示元素標記的結束。如果解析器當前不在元素標記內,那麼右括號可能被認爲是合法的,並被接受。

如果您還沒有解決這個,你要定義聲明如下,以XML逃脫左,右括號:

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

這將很好地工作在一個屬性文件,但如果你使用-Dkey=value表示法從命令行傳遞變量,那麼您需要將參數換成引號以避免外殼錯誤地解釋&符號:

"-Dstatement=x&gt;3;y&lt;4"