Exemplo n.º 1
0
        private void AddAncestorDefinition(StructureDefinition structureDefinition, IStructureDefinitionResolver resolver)
        {
            if (structureDefinition == null)
            {
                return;
            }

            if (structureDefinition.@base == null)
            {
                return;
            }

            if (String.IsNullOrWhiteSpace([email protected]))
            {
                return;
            }

            StructureDefinition baseStructureDefinition = resolver.GetStructureDefinition([email protected]);

            if (baseStructureDefinition == null)
            {
                return;
            }

            if (baseStructureDefinition == structureDefinition)
            {
                return;
            }

            _ancestors.Add(baseStructureDefinition);

            AddAncestorDefinition(baseStructureDefinition, resolver);
        }
Exemplo n.º 2
0
        public void AddExtensionDefinitions(SDTreeNode treeNode, IStructureDefinitionResolver resolver)
        {
            if (!treeNode.GetNodeType().IsExtension())
            {
                return;
            }

            ElementDefinitionType[] type = treeNode.GetElementDefinitionType();

            if (type == null)
            {
                return;
            }

            if (type.Length != 1)
            {
                return;
            }

            if (type.First().profile == null)
            {
                return;
            }

            if (type.First().profile.Length != 1)
            {
                return;
            }

            uri profileUri = type.First().profile.First();

            if (profileUri == null)
            {
                return;
            }

            StructureDefinition structureDefinition = resolver.GetStructureDefinition(profileUri.value);

            if (structureDefinition == null)
            {
                throw new Exception("Could not find extension " + profileUri.value);
            }

            treeNode.ExtensionDefinition = structureDefinition;
        }
Exemplo n.º 3
0
 public SDTreeBuilder(StructureDefinition structureDefinition, IStructureDefinitionResolver resolver)
 {
     _structureDefinition = XmlHelper.DeepClone(structureDefinition);
     _sdHierarchy         = new SDHierarchy(_structureDefinition, resolver);
     _resolver            = resolver;
 }
Exemplo n.º 4
0
        public SDHierarchy(StructureDefinition structureDefinition, IStructureDefinitionResolver resolver)
        {
            _current = structureDefinition;

            AddAncestorDefinition(structureDefinition, resolver);
        }