snapshot for logical model and enxp parsing

This commit is contained in:
Oliver Egger 2019-10-21 13:31:22 +02:00
parent 9b8ae8a9c8
commit 026aa86697
2 changed files with 6 additions and 2 deletions

View File

@ -463,7 +463,11 @@ public class ProfileUtilities extends TranslatingUtilities {
StructureDefinitionDifferentialComponent diff = cloneDiff(derived.getDifferential()); // we make a copy here because we're sometimes going to hack the differential while processing it. Have to migrate user data back afterwards StructureDefinitionDifferentialComponent diff = cloneDiff(derived.getDifferential()); // we make a copy here because we're sometimes going to hack the differential while processing it. Have to migrate user data back afterwards
StructureDefinitionSnapshotComponent baseSnapshot = base.getSnapshot(); StructureDefinitionSnapshotComponent baseSnapshot = base.getSnapshot();
if (derived.getDerivation().equals(TypeDerivationRule.SPECIALIZATION)) { if (derived.getDerivation().equals(TypeDerivationRule.SPECIALIZATION)) {
baseSnapshot = cloneSnapshot(baseSnapshot, base.getType(), derived.getType()); String derivedType = derived.getType();
if (StructureDefinitionKind.LOGICAL.equals(derived.getKind()) && derived.getType().contains("/")) {
derivedType = derivedType.substring(derivedType.lastIndexOf("/")+1);
}
baseSnapshot = cloneSnapshot(baseSnapshot, base.getType(), derivedType);
} }
processPaths("", derived.getSnapshot(), baseSnapshot, diff, baseCursor, diffCursor, baseSnapshot.getElement().size()-1, processPaths("", derived.getSnapshot(), baseSnapshot, diff, baseCursor, diffCursor, baseSnapshot.getElement().size()-1,
derived.getDifferential().hasElement() ? derived.getDifferential().getElement().size()-1 : -1, url, webUrl, derived.present(), null, null, false, base.getUrl(), null, false, new ArrayList<ElementRedirection>(), base); derived.getDifferential().hasElement() ? derived.getDifferential().getElement().size()-1 : -1, url, webUrl, derived.present(), null, null, false, base.getUrl(), null, false, new ArrayList<ElementRedirection>(), base);

View File

@ -245,7 +245,7 @@ public class XmlParser extends ParserBase {
if (!Utilities.noString(text)) { if (!Utilities.noString(text)) {
Property property = getTextProp(properties); Property property = getTextProp(properties);
if (property != null) { if (property != null) {
if ("ED.data[x]".equals(property.getDefinition().getId())) { if ("ED.data[x]".equals(property.getDefinition().getId()) || (property.getDefinition()!=null && property.getDefinition().getBase()!=null && "ED.data[x]".equals(property.getDefinition().getBase().getPath()))) {
if ("B64".equals(node.getAttribute("representation"))) { if ("B64".equals(node.getAttribute("representation"))) {
context.getChildren().add(new Element("dataBase64Binary", property, "base64Binary", text).markLocation(line(node), col(node))); context.getChildren().add(new Element("dataBase64Binary", property, "base64Binary", text).markLocation(line(node), col(node)));
} else { } else {