XSLT는 XML 노드의 트리를 처리하기 위해 설계되었습니다. XML 노드 (RDF/XML 및 RDF/XML-Abbrev)의 "트리"인 RDF 직렬화가 있지만 기본 RDF 데이터 모델은 그래프입니다.
결과 RDF 그래프가 tree가 아닌 경우 참조를 트래버스하기 위해 XSLT에서 더러운 작업을 수행해야하며 성능/유지 보수성/정당성이 저하 될 수 있습니다. OWL 형식을 수정 한 다음 다시 RDF가 아닌 XML로 변환하려는 경우이 점을 알아 두십시오. 당신이 가장 기본적인 RDF/XML 양식을 사용하는 경우
다시 비 RDF의 XML로 변환에
## Foo has two types
@prefix e: <uri://example#>.
e:Foo a e:Bar.
e:Foo a e:Baz. # Second statement about e:Foo
, 당신이 바로 아래에 RDF 문장의 목록을 얻을 것이다 다음과 같이
간단한 (트리) 예입니다 최상위 수준은 rdf:RDF
입니다. 이것들을 변환하는 것은 반복적으로 문장의 전체 목록을 검색하는 것을 포함 할 수있다.
<rdf:RDF xmlns:e="uri://example#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="uri://example#Foo">
<rdf:type rdf:resource="uri://example#Baz"/>
</rdf:Description>
<rdf:Description rdf:about="uri://example#Foo">
<rdf:type rdf:resource="uri://example#Bar"/>
</rdf:Description>
</rdf:RDF>
당신은 읽기 쉽게 RDF/XML-약칭 형식을 찾을 수 있지만,이 (당신의 XSLT에 있지만 호환되지 않는) RDF 데이터 모델은 정렬되지 않은이며, 하나의 그래프는 많은 동등한를 가질 수 있기 때문에 XSLT로 처리하는 것은 쉽지 않다 XML 양식. 위의 예는 다음 중 하나로서 직렬화 할 수 있습니다
<!-- Bar is the containing element -->
<rdf:RDF xmlns:e="uri://example#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<e:Bar rdf:about="uri://example#Foo">
<rdf:type rdf:resource="uri://example#Baz"/>
</e:Bar>
</rdf:RDF>
<!-- Baz is the containing element -->
<rdf:RDF xmlns:e="uri://example#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<e:Baz rdf:about="uri://example#Foo">
<rdf:type rdf:resource="uri://example#Bar"/>
</e:Bar>
</rdf:RDF>
쓰기있는 XSLT에서 직렬화 의지 보좌관을위한 표준 양식을 작성 피트 Kirkham의 제안. 대부분의 경우 RDF 라이브러리는 매번 똑같은 입력이 주어지면 매번 같은 형식으로 문장을 직렬화 할 것이지만, RDF 그래프의 데이터가 순서가 정해지지 않기 때문에 결국에는 의존하지 않을 것입니다.