2012-02-28 16 views
0

Jena 2.6.4を使用しています。型付きリテラルの文字列

パーネルスクエア東^^ます。http:

次のコード

String v = "Parnell Square East"; 
Literal l = ModelFactory.createDefaultModel().createTypedLiteral(
    v, XSDDatatype.XSDstring); 
System.out.println(l.toString()); 

は、次の出力を生成し

を//www.w3.org/2001/XMLSchema#string私に間違っている

:私は期待していたでしょう:

"パーネルスクエア東" ^^のhttp:私は見LiteralImpl.javaのソースコードを簡単に見てから

を//www.w3.org/2001/XMLSchema#string:

@Override public String toString() { 
    return asNode().toString(PrefixMapping.Standard, false); 
} 

2番目のパラメータ(引用符)がfalseに設定されているのはなぜですか?

私は

String v = "Parnell Square East"; 
Literal l = ModelFactory.createDefaultModel().createTypedLiteral(v, 
     XSDDatatype.XSDstring); 
System.out.println(l.asNode().toString(PrefixMapping.Standard, true)); 

をすれば、私が所望の出力

を得る "パーネルスクエア東" ^^のhttp:

を//www.w3.org/2001/XMLSchema#string

なぜこれがデフォルトの動作ではないのだろうか?

おかげで、 マルコ

答えて

1

任意のイエナノード上のtoStringが特定のシリアル化(例えばタートル)に収まる出力を生成することを暗黙的または明示的な保証は、ありません。 toStringがXMLノードを生成しない理由、またはそのデータ型がq-nameに省略されていない理由を尋ねることもできます。 Jenaが取る見解は、toStringがデバッグに役立つのに十分な情報を生成することです。それを超える要件はアプリケーションの責任です。

あなたが良いユースケースを持っている場合は、Jena Jiraにパッチを提出してください。しかし、既存のユーザコードが現在の動作に依存している可能性があるので、切り替えにはある程度のコストがかかりますので、変更のための強力なケースを作る必要があります。

+0

私はその点を見て、意味があります。ありがとう! – MarcoS

関連する問題