示例#1
0
        private void getChildNames(IXsdNode node, ICollection <XsdElement> result)
        {
            var kids = node.GetChildren();

            foreach (IXsdNode xsdNode in kids)
            {
                if (xsdNode is XsdElement)
                {
                    result.Add((XsdElement)xsdNode);
                }
                else if (xsdNode is XsdAllSequenceChoice)
                {
                    XsdAllSequenceChoice list = (XsdAllSequenceChoice)xsdNode;
                    getChildNames(list, result);
                }
            }

            if ((node as IXsdHasType)?.TypeTarget != null)
            {
                IXsdHasType n = (IXsdHasType)node;
                getChildNames(n.TypeTarget, result);
            }
            if ((node as IXsdHasRef)?.RefTarget != null)
            {
                IXsdHasRef n = (IXsdHasRef)node;
                getChildNames(n.RefTarget, result);
            }
        }
示例#2
0
        private void expandReferences()
        {
            foreach (IXsdNode node in GetAllNodes())
            {
                if (node is IXsdHasAttribute)
                {
                    ICollection <XsdAttribute> col = ((IXsdHasAttribute)node).GetAttributes();
                    foreach (XsdAttribute xsdAttribute in col)
                    {
                        if (xsdAttribute.TypeTarget == null)
                        {
                            xsdAttribute.TypeTarget = getNodeByName(xsdAttribute.TypeName);
                        }
                    }
                }

                IXsdHasRef refable = node as IXsdHasRef;
                if (refable != null && refable.RefTarget == null)
                {
                    refable.RefTarget = getNodeByName(refable.RefName);
                }
                IXsdHasType typeable = node as IXsdHasType;
                if (typeable != null && typeable.TypeTarget == null)
                {
                    typeable.TypeTarget = getNodeByName(typeable.TypeName);
                }
                XsdExtension extension = node as XsdExtension;
                if (extension != null && extension.BaseTarget == null)
                {
                    extension.BaseTarget = getNodeByName(extension.Base);
                }
            }
        }