diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java index 122404cc4..acde82364 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java @@ -50,6 +50,8 @@ import org.hl7.fhir.validation.cli.model.ScanOutputItem; import org.hl7.fhir.validation.cli.services.StandAloneValidatorFetcher.IPackageInstaller; import org.hl7.fhir.validation.cli.utils.*; import org.hl7.fhir.validation.instance.InstanceValidator; +import org.hl7.fhir.validation.instance.utils.NodeStack; +import org.hl7.fhir.validation.instance.utils.ValidatorHostContext; import org.w3c.dom.Document; import org.xml.sax.SAXException; @@ -1387,9 +1389,10 @@ public class ValidationEngine implements IValidatorResourceFetcher, IPackageInst public String evaluateFhirPath(String source, String expression) throws FHIRException, IOException { Content cnt = loadContent(source, "validate", false); - FHIRPathEngine fpe = new FHIRPathEngine(context); + FHIRPathEngine fpe = this.getValidator().getFHIRPathEngine(); Element e = Manager.parse(context, new ByteArrayInputStream(cnt.focus), cnt.cntType); - return fpe.evaluateToString(e, expression); + ExpressionNode exp = fpe.parse(expression); + return fpe.evaluateToString(new ValidatorHostContext(context, e), e, e, e, exp); } public StructureDefinition snapshot(String source, String version) throws FHIRException, IOException { diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java index 2ebae0d89..5e0f8c07a 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java @@ -332,6 +332,10 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat } private FHIRPathEngine fpe; + public FHIRPathEngine getFHIRPathEngine() { + return fpe; + } + // configuration items private CheckDisplayOption checkDisplay; private boolean anyExtensionsAllowed;