FromXdrName() static private méthode

static private FromXdrName ( string name ) : XmlSchemaDatatype
name string
Résultat XmlSchemaDatatype
        private SchemaElementDecl ThoroughGetElementDecl()
        {
            if (base.reader.Depth == 0)
            {
                this.LoadSchema(string.Empty);
            }
            if (base.reader.MoveToFirstAttribute())
            {
                do
                {
                    string namespaceURI = base.reader.NamespaceURI;
                    string localName    = base.reader.LocalName;
                    if (Ref.Equal(namespaceURI, base.SchemaNames.NsXmlNs))
                    {
                        this.LoadSchema(base.reader.Value);
                        if (this.isProcessContents)
                        {
                            this.nsManager.AddNamespace((base.reader.Prefix.Length == 0) ? string.Empty : base.reader.LocalName, base.reader.Value);
                        }
                    }
                    if (Ref.Equal(namespaceURI, base.SchemaNames.QnDtDt.Namespace) && Ref.Equal(localName, base.SchemaNames.QnDtDt.Name))
                    {
                        base.reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(base.reader.Value);
                    }
                }while (base.reader.MoveToNextAttribute());
                base.reader.MoveToElement();
            }
            SchemaElementDecl elementDecl = base.schemaInfo.GetElementDecl(base.elementName);

            if ((elementDecl == null) && base.schemaInfo.TargetNamespaces.ContainsKey(base.context.Namespace))
            {
                base.SendValidationEvent("Sch_UndeclaredElement", XmlSchemaValidator.QNameString(base.context.LocalName, base.context.Namespace));
            }
            return(elementDecl);
        }
Exemple #2
0
        // SxS: This method processes resource names read from the source document and does not expose
        // any resources to the caller. It is fine to suppress the SxS warning.
        private SchemaElementDecl?ThoroughGetElementDecl()
        {
            if (reader.Depth == 0)
            {
                LoadSchema(string.Empty);
            }
            if (reader.MoveToFirstAttribute())
            {
                do
                {
                    string objectNs   = reader.NamespaceURI;
                    string objectName = reader.LocalName;
                    if (Ref.Equal(objectNs, SchemaNames.NsXmlNs))
                    {
                        LoadSchema(reader.Value);
                        if (_isProcessContents)
                        {
                            _nsManager.AddNamespace(reader.Prefix.Length == 0 ? string.Empty : reader.LocalName, reader.Value);
                        }
                    }
                    if (
                        Ref.Equal(objectNs, SchemaNames.QnDtDt.Namespace) &&
                        Ref.Equal(objectName, SchemaNames.QnDtDt.Name)
                        )
                    {
                        reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(reader.Value);
                    }
                } while (reader.MoveToNextAttribute());
                reader.MoveToElement();
            }

            SchemaElementDecl?elementDecl = schemaInfo !.GetElementDecl(elementName);

            if (elementDecl == null)
            {
                if (schemaInfo.TargetNamespaces.ContainsKey(context !.Namespace !))
                {
                    SendValidationEvent(SR.Sch_UndeclaredElement, XmlSchemaValidator.QNameString(context.LocalName !, context.Namespace !));
                }
            }
            return(elementDecl);
        }
Exemple #3
0
        private ValidationType DetectValidationType()
        {
            //Type not yet detected : Check in Schema Collection
            if (reader.Schemas != null && reader.Schemas.Count > 0)
            {
                XmlSchemaCollectionEnumerator enumerator = reader.Schemas.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    XmlSchemaCollectionNode node = enumerator.CurrentNode !;
                    SchemaInfo schemaInfo        = node.SchemaInfo !;
                    if (schemaInfo.SchemaType == SchemaType.XSD)
                    {
                        return(ValidationType.Schema);
                    }
                    else if (schemaInfo.SchemaType == SchemaType.XDR)
                    {
                        return(ValidationType.XDR);
                    }
                }
            }

            if (reader.NodeType == XmlNodeType.Element)
            {
                SchemaType schemaType = SchemaNames.SchemaTypeFromRoot(reader.LocalName, reader.NamespaceURI);
                if (schemaType == SchemaType.XSD)
                {
                    return(ValidationType.Schema);
                }
                else if (schemaType == SchemaType.XDR)
                {
                    return(ValidationType.XDR);
                }
                else
                {
                    int count = reader.AttributeCount;
                    for (int i = 0; i < count; i++)
                    {
                        reader.MoveToAttribute(i);
                        string objectNs   = reader.NamespaceURI;
                        string objectName = reader.LocalName;
                        if (Ref.Equal(objectNs, SchemaNames.NsXmlNs))
                        {
                            if (XdrBuilder.IsXdrSchema(reader.Value))
                            {
                                reader.MoveToElement();
                                return(ValidationType.XDR);
                            }
                        }
                        else if (Ref.Equal(objectNs, SchemaNames.NsXsi))
                        {
                            reader.MoveToElement();
                            return(ValidationType.Schema);
                        }
                        else if (Ref.Equal(objectNs, SchemaNames.QnDtDt.Namespace) && Ref.Equal(objectName, SchemaNames.QnDtDt.Name))
                        {
                            reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(reader.Value);
                            reader.MoveToElement();
                            return(ValidationType.XDR);
                        }
                    } //end of for
                    if (count > 0)
                    {
                        reader.MoveToElement();
                    }
                }
            }
            return(ValidationType.Auto);
        }
        private ValidationType DetectValidationType()
        {
            if ((base.reader.Schemas != null) && (base.reader.Schemas.Count > 0))
            {
                XmlSchemaCollectionEnumerator enumerator = base.reader.Schemas.GetEnumerator();
                while (enumerator.MoveNext())
                {
                    SchemaInfo schemaInfo = enumerator.CurrentNode.SchemaInfo;
                    if (schemaInfo.SchemaType == SchemaType.XSD)
                    {
                        return(ValidationType.Schema);
                    }
                    if (schemaInfo.SchemaType == SchemaType.XDR)
                    {
                        return(ValidationType.XDR);
                    }
                }
            }
            if (base.reader.NodeType == XmlNodeType.Element)
            {
                switch (base.SchemaNames.SchemaTypeFromRoot(base.reader.LocalName, base.reader.NamespaceURI))
                {
                case SchemaType.XSD:
                    return(ValidationType.Schema);

                case SchemaType.XDR:
                    return(ValidationType.XDR);
                }
                int attributeCount = base.reader.AttributeCount;
                for (int i = 0; i < attributeCount; i++)
                {
                    base.reader.MoveToAttribute(i);
                    string namespaceURI = base.reader.NamespaceURI;
                    string localName    = base.reader.LocalName;
                    if (Ref.Equal(namespaceURI, base.SchemaNames.NsXmlNs))
                    {
                        if (XdrBuilder.IsXdrSchema(base.reader.Value))
                        {
                            base.reader.MoveToElement();
                            return(ValidationType.XDR);
                        }
                    }
                    else
                    {
                        if (Ref.Equal(namespaceURI, base.SchemaNames.NsXsi))
                        {
                            base.reader.MoveToElement();
                            return(ValidationType.Schema);
                        }
                        if (Ref.Equal(namespaceURI, base.SchemaNames.QnDtDt.Namespace) && Ref.Equal(localName, base.SchemaNames.QnDtDt.Name))
                        {
                            base.reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(base.reader.Value);
                            base.reader.MoveToElement();
                            return(ValidationType.XDR);
                        }
                    }
                }
                if (attributeCount > 0)
                {
                    base.reader.MoveToElement();
                }
            }
            return(ValidationType.Auto);
        }