Skip to content

Commit 17c542d

Browse files
committed
fix: escape datatype literal values
1 parent 4d6bb10 commit 17c542d

File tree

4 files changed

+18
-1
lines changed

4 files changed

+18
-1
lines changed

lib/TermSerializer.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import TermMap from '@rdfjs/term-map'
22
import toNT from '@rdfjs/to-ntriples'
3+
import * as ns from './namespaces.js'
34
import {
45
isBoolean,
56
isDecimal,
@@ -44,10 +45,15 @@ class TermSerializer {
4445
return term.value
4546
}
4647
} else if (!isLangString(term) && !isString(term)) {
48+
const escaped = toNT({
49+
datatype: ns.xsd.string,
50+
termType: 'Literal',
51+
value: term.value
52+
})
4753
const shrinked = this.prefixes.shrink(term.datatype)
4854

4955
if (shrinked) {
50-
return `"${term.value}"^^${shrinked.value}`
56+
return `${escaped}^^${shrinked.value}`
5157
}
5258
}
5359
}

test/assets/literal-datatype.nt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<http://example.org/resourceA> <http://example.org/propertyA> "a\"b\\c\nd\r"^^<http://example.org/datatypeA> .

test/assets/literal-datatype.ttl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@prefix ex: <http://example.org/>.
2+
3+
ex:resourceA
4+
ex:propertyA "a\"b\\c\nd\r"^^ex:datatypeA.

test/test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const tests = [
2424
'list-multi-ref',
2525
'literal',
2626
'literal-boolean',
27+
'literal-datatype',
2728
'literal-decimal',
2829
'literal-double',
2930
'literal-integer',
@@ -50,6 +51,11 @@ const options = {
5051
filename: 'base',
5152
baseIRI: new URL('http://example.com/')
5253
},
54+
'literal-datatype': {
55+
prefixes: [
56+
['ex', rdf.namedNode('http://example.org/')]
57+
]
58+
},
5359
prefix: {
5460
prefixes: [
5561
['xsd', rdf.namedNode('http://www.w3.org/2001/XMLSchema#')],

0 commit comments

Comments
 (0)