Единственная разница между вашим желаемым выходом и выходом, который вы создаете сейчас, заключается в наличии тройного :Jack rdf:type :Person
(и, если вы хотите, определения пространства имен по умолчанию, так что вам не нужен префикс ns:
на ваши элементы XML).
Начиная с RDF
<rdf:Description rdf:about="Jack">
<ns:salary>2004</ns:salary>
</rdf:Description>
и добавляя тройку Jack rdf:type Person
, вы получите
<rdf:Description rdf:about="Jack">
<rdf:type rdf:resource="Person"/>
<ns:salary>2004</ns:salary>
</rdf:Description>
Спецификация RDF / XML позволяет использовать сокращенную запись дляrdf:type
троек;если URI для типа можно замкнуть на имя XML, то его можно использовать в качестве имени элемента.Используя это сокращение, вы получите
<ns:Person rdf:about="Jack">
<ns:salary>2004</ns:salary>
</ns:Person>
, который является вашим желаемым выводом, если префикс не является действительно важным.Если это так, то вам просто нужно использовать PrefixMapping#setNsPrefix
для установки префикса.(Model
реализует PrefixMapping
.)
model.setNsPrefix( "", "http://yourontologies.com/thisOntology#" );
, и вы получите
<Person rdf:about="Jack">
<salary>2004</salary>
</Person>
при сериализации модели.