@shaclmate/compiler 4.0.65 → 4.0.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generators/ts/DiscriminatedUnionType.d.ts +1 -2
- package/dist/generators/ts/DiscriminatedUnionType.js +1 -3
- package/dist/generators/ts/TsGenerator.d.ts +0 -4
- package/dist/generators/ts/TsGenerator.js +8 -93
- package/dist/generators/ts/UberObjectDiscriminatedUnionType.d.ts +29 -0
- package/dist/generators/ts/UberObjectDiscriminatedUnionType.js +144 -0
- package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_graphqlTypeVariableStatement.js +0 -3
- package/dist/generators/ts/_ObjectDiscriminatedUnionType/ObjectDiscriminatedUnionType_typeGuardFunctionDeclaration.js +0 -3
- package/dist/generators/ts/_snippets/snippets_RdfVocabularies.js +1 -0
- package/dist/input/input.shaclmate.d.ts +37 -1315
- package/dist/input/input.shaclmate.js +41 -170
- package/package.json +10 -8
|
@@ -12,9 +12,8 @@ export declare class DiscriminatedUnionType<MemberTypeT extends Type> extends Ab
|
|
|
12
12
|
readonly identifierType: Maybe<BlankNodeType | IdentifierType | IriType>;
|
|
13
13
|
readonly kind: "ObjectDiscriminatedUnion" | "DiscriminatedUnion";
|
|
14
14
|
readonly recursive: boolean;
|
|
15
|
-
readonly synthetic: boolean;
|
|
16
15
|
readonly validationFunction: Maybe<Code>;
|
|
17
|
-
constructor({ identifierType, members, recursive,
|
|
16
|
+
constructor({ identifierType, members, recursive, ...superParameters }: {
|
|
18
17
|
identifierType: Maybe<BlankNodeType | IdentifierType | IriType>;
|
|
19
18
|
members: readonly (Pick<DiscriminatedUnionType.Member<MemberTypeT>, "type"> & {
|
|
20
19
|
readonly discriminantValue: Maybe<number | string>;
|
|
@@ -31,15 +31,13 @@ export class DiscriminatedUnionType extends AbstractType {
|
|
|
31
31
|
identifierType;
|
|
32
32
|
kind = "DiscriminatedUnion";
|
|
33
33
|
recursive;
|
|
34
|
-
synthetic;
|
|
35
34
|
validationFunction = Maybe.empty();
|
|
36
|
-
constructor({ identifierType, members, recursive,
|
|
35
|
+
constructor({ identifierType, members, recursive, ...superParameters }) {
|
|
37
36
|
super(superParameters);
|
|
38
37
|
this.identifierType = identifierType;
|
|
39
38
|
invariant(members.length >= 2);
|
|
40
39
|
this.recursive = recursive;
|
|
41
40
|
this.discriminant = DiscriminatedUnionType_inferDiscriminant.call(this, members);
|
|
42
|
-
this.synthetic = synthetic;
|
|
43
41
|
this.lazyMembers = () => members.map((member, memberI) => {
|
|
44
42
|
let discriminantValues;
|
|
45
43
|
switch (this.discriminant.kind) {
|
|
@@ -11,10 +11,6 @@ export declare class TsGenerator implements Generator {
|
|
|
11
11
|
});
|
|
12
12
|
generate(ast_: ast.Ast): string;
|
|
13
13
|
private objectSetTypeDeclarations;
|
|
14
|
-
/**
|
|
15
|
-
* Synthesize the $Object union.
|
|
16
|
-
*/
|
|
17
|
-
private synthesizeUberObjectDiscriminatedUnionType;
|
|
18
14
|
}
|
|
19
15
|
export declare namespace TsGenerator {
|
|
20
16
|
interface Configuration {
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import dataFactory from "@rdfx/data-factory";
|
|
2
|
-
import { Maybe } from "purify-ts";
|
|
3
|
-
import { invariant } from "ts-invariant";
|
|
4
|
-
import { BlankNodeType } from "./BlankNodeType.js";
|
|
5
1
|
import { GraphqlSchema } from "./GraphqlSchema.js";
|
|
6
|
-
import { IdentifierType } from "./IdentifierType.js";
|
|
7
|
-
import { IriType } from "./IriType.js";
|
|
8
|
-
import { ObjectDiscriminatedUnionType } from "./ObjectDiscriminatedUnionType.js";
|
|
9
2
|
import { ObjectSetType } from "./ObjectSetType.js";
|
|
10
3
|
import { RdfjsDatasetObjectSetType } from "./RdfjsDatasetObjectSetType.js";
|
|
11
4
|
import { Reusables } from "./Reusables.js";
|
|
12
5
|
import { SparqlObjectSetType } from "./SparqlObjectSetType.js";
|
|
13
6
|
import { TypeFactory } from "./TypeFactory.js";
|
|
14
7
|
import { code, joinCode } from "./ts-poet-wrapper.js";
|
|
8
|
+
import { UberObjectDiscriminatedUnionType } from "./UberObjectDiscriminatedUnionType.js";
|
|
15
9
|
function compareTsNamedType(left, right) {
|
|
16
10
|
return left.name.unsafeCoerce().localeCompare(right.name.unsafeCoerce());
|
|
17
11
|
}
|
|
@@ -80,22 +74,12 @@ export class TsGenerator {
|
|
|
80
74
|
declarations.push(declaration);
|
|
81
75
|
});
|
|
82
76
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
default: {
|
|
90
|
-
const uberObjectDiscriminatedUnionType = this.synthesizeUberObjectDiscriminatedUnionType({
|
|
91
|
-
configuration,
|
|
92
|
-
namedObjectTypes: tsNamedObjectTypes,
|
|
93
|
-
reusables,
|
|
94
|
-
});
|
|
95
|
-
declarations = declarations.concat(uberObjectDiscriminatedUnionType.declaration.toList());
|
|
96
|
-
tsNamedObjectDiscriminatedUnionTypes.push(uberObjectDiscriminatedUnionType);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
77
|
+
declarations = declarations.concat(new UberObjectDiscriminatedUnionType({
|
|
78
|
+
configuration,
|
|
79
|
+
logger: this.logger,
|
|
80
|
+
members: tsNamedObjectTypes,
|
|
81
|
+
reusables,
|
|
82
|
+
}).declaration.toList());
|
|
99
83
|
declarations.push(...this.objectSetTypeDeclarations({
|
|
100
84
|
configuration,
|
|
101
85
|
namedObjectTypes: tsNamedObjectTypes,
|
|
@@ -104,7 +88,7 @@ export class TsGenerator {
|
|
|
104
88
|
}));
|
|
105
89
|
if (configuration.features.has("GraphQL")) {
|
|
106
90
|
const graphqlNamedObjectTypes = tsNamedObjectTypes.filter((tsNamedObjectType) => !tsNamedObjectType.synthetic);
|
|
107
|
-
const graphqlNamedObjectDiscriminatedUnionTypes = tsNamedObjectDiscriminatedUnionTypes
|
|
91
|
+
const graphqlNamedObjectDiscriminatedUnionTypes = tsNamedObjectDiscriminatedUnionTypes;
|
|
108
92
|
if (graphqlNamedObjectTypes.length > 0) {
|
|
109
93
|
declarations.push(new GraphqlSchema({
|
|
110
94
|
configuration,
|
|
@@ -138,75 +122,6 @@ export class TsGenerator {
|
|
|
138
122
|
}
|
|
139
123
|
return declarations;
|
|
140
124
|
}
|
|
141
|
-
/**
|
|
142
|
-
* Synthesize the $Object union.
|
|
143
|
-
*/
|
|
144
|
-
synthesizeUberObjectDiscriminatedUnionType({ configuration, namedObjectTypes, reusables, }) {
|
|
145
|
-
const filteredNamedObjectTypes = namedObjectTypes.filter((namedObjectType) => !namedObjectType.extern);
|
|
146
|
-
invariant(filteredNamedObjectTypes.length > 0);
|
|
147
|
-
const nodeKinds = filteredNamedObjectTypes.reduce((nodeKinds, namedObjectType) => {
|
|
148
|
-
for (const nodeKind of namedObjectType.identifierType.nodeKinds) {
|
|
149
|
-
nodeKinds.add(nodeKind);
|
|
150
|
-
}
|
|
151
|
-
return nodeKinds;
|
|
152
|
-
}, new Set());
|
|
153
|
-
let identifierType;
|
|
154
|
-
if (nodeKinds.size === 2) {
|
|
155
|
-
identifierType = new IdentifierType({
|
|
156
|
-
name: Maybe.empty(),
|
|
157
|
-
comment: Maybe.empty(),
|
|
158
|
-
configuration,
|
|
159
|
-
label: Maybe.empty(),
|
|
160
|
-
logger: this.logger,
|
|
161
|
-
reusables,
|
|
162
|
-
shapeIdentifier: dataFactory.blankNode(),
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
switch ([...nodeKinds][0]) {
|
|
167
|
-
case "BlankNode":
|
|
168
|
-
identifierType = new BlankNodeType({
|
|
169
|
-
name: Maybe.empty(),
|
|
170
|
-
comment: Maybe.empty(),
|
|
171
|
-
configuration,
|
|
172
|
-
label: Maybe.empty(),
|
|
173
|
-
logger: this.logger,
|
|
174
|
-
reusables,
|
|
175
|
-
shapeIdentifier: dataFactory.blankNode(),
|
|
176
|
-
});
|
|
177
|
-
break;
|
|
178
|
-
case "IRI":
|
|
179
|
-
identifierType = new IriType({
|
|
180
|
-
name: Maybe.empty(),
|
|
181
|
-
comment: Maybe.empty(),
|
|
182
|
-
configuration,
|
|
183
|
-
hasValues: [],
|
|
184
|
-
in_: [],
|
|
185
|
-
label: Maybe.empty(),
|
|
186
|
-
logger: this.logger,
|
|
187
|
-
reusables,
|
|
188
|
-
shapeIdentifier: dataFactory.blankNode(),
|
|
189
|
-
});
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return new ObjectDiscriminatedUnionType({
|
|
194
|
-
name: Maybe.of(`${configuration.syntheticNamePrefix}Object`),
|
|
195
|
-
comment: Maybe.empty(),
|
|
196
|
-
configuration,
|
|
197
|
-
identifierType: Maybe.of(identifierType),
|
|
198
|
-
label: Maybe.empty(),
|
|
199
|
-
logger: this.logger,
|
|
200
|
-
members: filteredNamedObjectTypes.map((namedObjectType) => ({
|
|
201
|
-
discriminantValue: Maybe.empty(),
|
|
202
|
-
type: namedObjectType,
|
|
203
|
-
})),
|
|
204
|
-
recursive: false,
|
|
205
|
-
reusables,
|
|
206
|
-
shapeIdentifier: dataFactory.blankNode(),
|
|
207
|
-
synthetic: true,
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
125
|
}
|
|
211
126
|
(function (TsGenerator) {
|
|
212
127
|
let Configuration;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Maybe } from "purify-ts";
|
|
2
|
+
import type { Logger } from "ts-log";
|
|
3
|
+
import type { ObjectType } from "./ObjectType.js";
|
|
4
|
+
import type { Reusables } from "./Reusables.js";
|
|
5
|
+
import type { TsGenerator } from "./TsGenerator.js";
|
|
6
|
+
import { type Code } from "./ts-poet-wrapper.js";
|
|
7
|
+
/**
|
|
8
|
+
* The $Object discriminated union used in type guard functions (isSomeObjectType(object: $Object)) and some convenience methods.
|
|
9
|
+
*/
|
|
10
|
+
export declare class UberObjectDiscriminatedUnionType {
|
|
11
|
+
private readonly configuration;
|
|
12
|
+
private readonly members;
|
|
13
|
+
private readonly reusables;
|
|
14
|
+
constructor({ configuration, members, reusables, }: {
|
|
15
|
+
configuration: TsGenerator.Configuration;
|
|
16
|
+
logger: Logger;
|
|
17
|
+
members: readonly ObjectType[];
|
|
18
|
+
reusables: Reusables;
|
|
19
|
+
});
|
|
20
|
+
get declaration(): Maybe<Code>;
|
|
21
|
+
private get equalsFunctionDeclaration();
|
|
22
|
+
private get name();
|
|
23
|
+
private get toJsonFunctionDeclaration();
|
|
24
|
+
private get toRdfResourceFunctionDeclaration();
|
|
25
|
+
private get hashFunctionDeclaration();
|
|
26
|
+
private get toStringFunctionDeclaration();
|
|
27
|
+
private memberTypeSwitch;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=UberObjectDiscriminatedUnionType.d.ts.map
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Maybe } from "purify-ts";
|
|
8
|
+
import { invariant } from "ts-invariant";
|
|
9
|
+
import { Memoize } from "typescript-memoize";
|
|
10
|
+
import { code, def, joinCode } from "./ts-poet-wrapper.js";
|
|
11
|
+
/**
|
|
12
|
+
* The $Object discriminated union used in type guard functions (isSomeObjectType(object: $Object)) and some convenience methods.
|
|
13
|
+
*/
|
|
14
|
+
export class UberObjectDiscriminatedUnionType {
|
|
15
|
+
configuration;
|
|
16
|
+
members;
|
|
17
|
+
reusables;
|
|
18
|
+
constructor({ configuration, members, reusables, }) {
|
|
19
|
+
this.configuration = configuration;
|
|
20
|
+
this.members = members.filter((member) => !member.extern);
|
|
21
|
+
invariant(this.members.every((member) => member.name.isJust()));
|
|
22
|
+
this.reusables = reusables;
|
|
23
|
+
}
|
|
24
|
+
get declaration() {
|
|
25
|
+
if (this.members.length === 0) {
|
|
26
|
+
return Maybe.empty();
|
|
27
|
+
}
|
|
28
|
+
const declarations = [];
|
|
29
|
+
if (this.configuration.features.has("Object.type")) {
|
|
30
|
+
declarations.push(code `export type ${def(this.name)} = ${this.members.map((member) => member.name.unsafeCoerce()).join(" | ")};`);
|
|
31
|
+
}
|
|
32
|
+
const staticModuleDeclarations = [
|
|
33
|
+
...this.equalsFunctionDeclaration.toList(),
|
|
34
|
+
...this.hashFunctionDeclaration.toList(),
|
|
35
|
+
...this.toJsonFunctionDeclaration.toList(),
|
|
36
|
+
...this.toRdfResourceFunctionDeclaration.toList(),
|
|
37
|
+
...this.toStringFunctionDeclaration.toList(),
|
|
38
|
+
];
|
|
39
|
+
if (staticModuleDeclarations.length > 0) {
|
|
40
|
+
declarations.push(code `\
|
|
41
|
+
export namespace ${def(this.name)} {
|
|
42
|
+
${joinCode(staticModuleDeclarations, { on: "\n\n" })}
|
|
43
|
+
}`);
|
|
44
|
+
}
|
|
45
|
+
if (declarations.length === 0) {
|
|
46
|
+
return Maybe.empty();
|
|
47
|
+
}
|
|
48
|
+
return Maybe.of(joinCode(declarations, { on: "\n\n" }));
|
|
49
|
+
}
|
|
50
|
+
get equalsFunctionDeclaration() {
|
|
51
|
+
if (!this.configuration.features.has("Object.equals")) {
|
|
52
|
+
return Maybe.empty();
|
|
53
|
+
}
|
|
54
|
+
if (this.members.length === 1) {
|
|
55
|
+
return Maybe.of(code `export const equals = ${this.members[0].name.unsafeCoerce()}.equals`);
|
|
56
|
+
}
|
|
57
|
+
return Maybe.of(code `\
|
|
58
|
+
export function equals(left: ${this.name}, right: ${this.name}): ${this.reusables.snippets.EqualsResult} {
|
|
59
|
+
if (left.${this.configuration.objectDiscriminantProperty.name} !== right.${this.configuration.objectDiscriminantProperty.name}) {
|
|
60
|
+
return ${this.reusables.imports.Left}({ left, right, propertyName: "type", propertyValuesUnequal: { left: typeof left, right: typeof right, type: "boolean" as const }, type: "property" as const });
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
${this.memberTypeSwitch({
|
|
64
|
+
caseBlock: (member) => code `return ${member.equalsFunction}(left, right as ${member.name.unsafeCoerce()});`,
|
|
65
|
+
variables: { value: code `left` },
|
|
66
|
+
})}
|
|
67
|
+
}`);
|
|
68
|
+
}
|
|
69
|
+
get name() {
|
|
70
|
+
return `${this.configuration.syntheticNamePrefix}Object`;
|
|
71
|
+
}
|
|
72
|
+
get toJsonFunctionDeclaration() {
|
|
73
|
+
if (!this.configuration.features.has("Object.toJson")) {
|
|
74
|
+
return Maybe.empty();
|
|
75
|
+
}
|
|
76
|
+
if (this.members.length === 1) {
|
|
77
|
+
return Maybe.of(code `export const toJson = ${this.members[0].name.unsafeCoerce()}.toJson;`);
|
|
78
|
+
}
|
|
79
|
+
return Maybe.of(code `\
|
|
80
|
+
export function toJson(object: ${this.name}) {
|
|
81
|
+
${this.memberTypeSwitch({
|
|
82
|
+
caseBlock: (member) => code `return ${member.toJsonExpression({ variables: { value: code `object` } })};`,
|
|
83
|
+
variables: { value: code `object` },
|
|
84
|
+
})}
|
|
85
|
+
}`);
|
|
86
|
+
}
|
|
87
|
+
get toRdfResourceFunctionDeclaration() {
|
|
88
|
+
if (!this.configuration.features.has("Object.toRdf")) {
|
|
89
|
+
return Maybe.empty();
|
|
90
|
+
}
|
|
91
|
+
if (this.members.length === 1) {
|
|
92
|
+
return Maybe.of(code `export const toRdfResource = ${this.members[0].name.unsafeCoerce()}.toRdfResource;`);
|
|
93
|
+
}
|
|
94
|
+
return Maybe.of(code `\
|
|
95
|
+
export const toRdfResource: ${this.reusables.snippets.ToRdfResourceFunction}<${this.name}> = (object, options) => {
|
|
96
|
+
${this.memberTypeSwitch({
|
|
97
|
+
caseBlock: (member) => code `return ${member.name.unsafeCoerce()}.toRdfResource(object, options);`,
|
|
98
|
+
variables: { value: code `object` },
|
|
99
|
+
})}
|
|
100
|
+
};`);
|
|
101
|
+
}
|
|
102
|
+
get hashFunctionDeclaration() {
|
|
103
|
+
if (!this.configuration.features.has("Object.hash")) {
|
|
104
|
+
return Maybe.empty();
|
|
105
|
+
}
|
|
106
|
+
if (this.members.length === 1) {
|
|
107
|
+
return Maybe.of(code `export const hash = ${this.members[0].name.unsafeCoerce()}.hash;`);
|
|
108
|
+
}
|
|
109
|
+
return Maybe.of(code `\
|
|
110
|
+
export function hash<HasherT extends ${this.reusables.snippets.Hasher}>(hasher: HasherT, object: ${this.name}): HasherT {
|
|
111
|
+
${this.memberTypeSwitch({
|
|
112
|
+
caseBlock: (member) => code `return ${member.hashFunction}(hasher, object);`,
|
|
113
|
+
variables: { value: code `object` },
|
|
114
|
+
})}
|
|
115
|
+
}`);
|
|
116
|
+
}
|
|
117
|
+
get toStringFunctionDeclaration() {
|
|
118
|
+
if (!this.configuration.features.has("Object.toString")) {
|
|
119
|
+
return Maybe.empty();
|
|
120
|
+
}
|
|
121
|
+
const syntheticNamePrefix = this.configuration.syntheticNamePrefix;
|
|
122
|
+
if (this.members.length === 1) {
|
|
123
|
+
return Maybe.of(code `export const ${syntheticNamePrefix}toString = ${this.members[0].name.unsafeCoerce()}.${syntheticNamePrefix}toString;`);
|
|
124
|
+
}
|
|
125
|
+
return Maybe.of(code `\
|
|
126
|
+
export function ${syntheticNamePrefix}toString(object: ${this.name}) {
|
|
127
|
+
${this.memberTypeSwitch({
|
|
128
|
+
caseBlock: (member) => code `return ${member.toStringExpression({ variables: { value: code `object` } })};`,
|
|
129
|
+
variables: { value: code `object` },
|
|
130
|
+
})}
|
|
131
|
+
}`);
|
|
132
|
+
}
|
|
133
|
+
memberTypeSwitch({ caseBlock, variables, }) {
|
|
134
|
+
return code `\
|
|
135
|
+
switch (${variables.value}.${this.configuration.objectDiscriminantProperty.name}) {
|
|
136
|
+
${joinCode(this.members.map((member) => code `case "${member.discriminantProperty.unsafeCoerce().value}": ${caseBlock(member)}`), { on: "\n" })}
|
|
137
|
+
default: ${variables.value} satisfies never; throw new Error("should never reach this point");
|
|
138
|
+
}`;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
__decorate([
|
|
142
|
+
Memoize()
|
|
143
|
+
], UberObjectDiscriminatedUnionType.prototype, "name", null);
|
|
144
|
+
//# sourceMappingURL=UberObjectDiscriminatedUnionType.js.map
|
|
@@ -4,9 +4,6 @@ export function ObjectDiscriminatedUnionType_graphqlTypeVariableStatement() {
|
|
|
4
4
|
if (!this.configuration.features.has("GraphQL")) {
|
|
5
5
|
return {};
|
|
6
6
|
}
|
|
7
|
-
if (this.synthetic) {
|
|
8
|
-
return {};
|
|
9
|
-
}
|
|
10
7
|
const name = this.name.unsafeCoerce();
|
|
11
8
|
return singleEntryRecord(`GraphQL`, code `\
|
|
12
9
|
export const GraphQL = new ${this.reusables.imports.GraphQLUnionType}(${{
|
|
@@ -8,9 +8,6 @@ export function ObjectDiscriminatedUnionType_typeGuardFunctionDeclaration() {
|
|
|
8
8
|
if (!name) {
|
|
9
9
|
return {};
|
|
10
10
|
}
|
|
11
|
-
if (name === `${this.configuration.syntheticNamePrefix}Object`) {
|
|
12
|
-
return {};
|
|
13
|
-
}
|
|
14
11
|
return singleEntryRecord(`is${name}`, code `\
|
|
15
12
|
export function is${name}(object: ${this.configuration.syntheticNamePrefix}Object): object is ${name} {
|
|
16
13
|
return ${joinCode(this.members.map((member) => code `${member.type.name.unsafeCoerce()}.is${member.type.name.unsafeCoerce()}(object)`), { on: " || " })};
|
|
@@ -19,6 +19,7 @@ namespace ${syntheticNamePrefix}RdfVocabularies {
|
|
|
19
19
|
byte: ${imports.dataFactory}.namedNode("http://www.w3.org/2001/XMLSchema#byte"),
|
|
20
20
|
date: ${imports.dataFactory}.namedNode("http://www.w3.org/2001/XMLSchema#date"),
|
|
21
21
|
dateTime: ${imports.dataFactory}.namedNode("http://www.w3.org/2001/XMLSchema#dateTime"),
|
|
22
|
+
dateTimeStamp: ${imports.dataFactory}.namedNode("http://www.w3.org/2001/XMLSchema#dateTimeStamp"),
|
|
22
23
|
decimal: ${imports.dataFactory}.namedNode("http://www.w3.org/2001/XMLSchema#decimal"),
|
|
23
24
|
double: ${imports.dataFactory}.namedNode("http://www.w3.org/2001/XMLSchema#double"),
|
|
24
25
|
float: ${imports.dataFactory}.namedNode("http://www.w3.org/2001/XMLSchema#float"),
|