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 286ad715c..570cf4ec5 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 @@ -239,27 +239,30 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat if (c.getAppContext() instanceof Element) { Element bnd = (Element) c.getAppContext(); Base res = resolveInBundle(url, bnd); - if (res != null) + if (res != null) { return res; + } } Base res = resolveInBundle(url, c.getResource()); - if (res != null) + if (res != null) { return res; + } res = resolveInBundle(url, c.getContainer()); - if (res != null) + if (res != null) { return res; + } - if (externalHostServices != null) + if (externalHostServices != null) { return externalHostServices.resolveReference(c.getAppContext(), url, refContext); - else if (fetcher != null) + } else if (fetcher != null) { try { return fetcher.fetch(c.getAppContext(), url); } catch (IOException e) { throw new FHIRException(e); } - else + } else { throw new Error(context.formatMessage(I18nConstants.NOT_DONE_YET__RESOLVE__LOCALLY_2, url)); - + } } @@ -1633,6 +1636,11 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat if ("http://hl7.org/fhir/StructureDefinition/structuredefinition-normative-version".equals(extUrl)) { list.get(0).setExpression("Element"); // well, it can't be used anywhere but the list of places it can be used is quite long } + if (!VersionUtilities.isThisOrLater("4.6", context.getVersion())) { + if (Utilities.existsInList(extUrl, "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", "http://hl7.org/fhir/StructureDefinition/capabilitystatement-prohibited")) { + list.get(0).setExpression("Element"); // well, they can't be used anywhere but the list of places they can be used is quite long + } + } return list; }