2012-02-28 9 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); 
} 

두 번째 매개 변수 (따옴표)를 false으로 설정하는 이유는 무엇입니까?

나는 ^^ HTTP 원하는 출력

"전시장 광장 동쪽"

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

취득 할 경우 //www.w3.org/2001/XMLSchema#string

왜 이것이 기본 동작이 아닌지 궁금합니다.

감사합니다, 마르코

답변

1

암시 적 또는 명시 적 보장은 어떤 예나 노드 toString는 특정 직렬화 (예를 들어, 거북이)에 맞는 출력을 생성 것이 없습니다. toString이 XML 노드를 생성하지 않는 이유 또는 데이터 유형이 q-name으로 축약되지 않은 이유를 묻는 것일 수도 있습니다. Jena가 취하는 관점은 toString이 디버깅에 유용한 충분한 정보를 생성한다는 것입니다. 그 이상의 요구 사항은 응용 프로그램 책임입니다.

그래, 좋은 유스 케이스가 있다면 Jena Jira에 패치를 제출하십시오. 그래도 기존 사용자 코드가 현재 동작에 의존하게되었을 수 있으므로 전환에 약간의 비용이 들기 때문에 변경에 대한 강력한 결정을 내릴 필요가 있습니다!

+0

나는 요점을보고 의미가있다. 감사! – MarcoS

관련 문제