Example #1
0
        }                                                                                        //Use the default for XmlSchemaCollection

        public BaseProcessor(XmlNameTable nameTable, SchemaNames schemaNames, ValidationEventHandler eventHandler, XmlSchemaCompilationSettings compilationSettings)
        {
            Debug.Assert(nameTable != null);
            _nameTable           = nameTable;
            _schemaNames         = schemaNames;
            _eventHandler        = eventHandler;
            _compilationSettings = compilationSettings;
            _nsXml = nameTable.Add(XmlReservedNs.NsXml);
        }
Example #2
0
 public Parser(SchemaType schemaType, XmlNameTable nameTable, SchemaNames schemaNames, ValidationEventHandler eventHandler)
 {
     _schemaType    = schemaType;
     _nameTable     = nameTable;
     _schemaNames   = schemaNames;
     _eventHandler  = eventHandler;
     _xmlResolver   = Microsoft.Xml.XmlConfiguration.XmlReaderSection.CreateDefaultResolver();
     _processMarkup = true;
     _dummyDocument = new XmlDocument();
 }
Example #3
0
 public BaseValidator(BaseValidator other)
 {
     reader            = other.reader;
     _schemaCollection = other._schemaCollection;
     _eventHandling    = other._eventHandling;
     _nameTable        = other._nameTable;
     _schemaNames      = other._schemaNames;
     _positionInfo     = other._positionInfo;
     _xmlResolver      = other._xmlResolver;
     _baseUri          = other._baseUri;
     elementName       = other.elementName;
 }
Example #4
0
 internal SchemaNames GetSchemaNames(XmlNameTable nt)
 {
     if (_nameTable != nt)
     {
         return(new SchemaNames(nt));
     }
     else
     {
         if (_schemaNames == null)
         {
             _schemaNames = new SchemaNames(_nameTable);
         }
         return(_schemaNames);
     }
 }
Example #5
0
 private void ValidateElement()
 {
     elementName.Init(reader.LocalName, XmlSchemaDatatype.XdrCanonizeUri(reader.NamespaceURI, NameTable, SchemaNames));
     ValidateChildElement();
     if (SchemaNames.IsXDRRoot(elementName.Name, elementName.Namespace) && reader.Depth > 0)
     {
         _inlineSchemaParser = new Parser(SchemaType.XDR, NameTable, SchemaNames, EventHandler);
         _inlineSchemaParser.StartParsing(reader, null);
         _inlineSchemaParser.ParseReaderNode();
     }
     else
     {
         ProcessElement();
     }
 }
Example #6
0
        internal static string XdrCanonizeUri(string uri, XmlNameTable nameTable, SchemaNames schemaNames)
        {
            string canonicalUri;
            int    offset  = 5;
            bool   convert = false;

            if (uri.Length > 5 && uri.StartsWith("uuid:", StringComparison.Ordinal))
            {
                convert = true;
            }
            else if (uri.Length > 9 && uri.StartsWith("urn:uuid:", StringComparison.Ordinal))
            {
                convert = true;
                offset  = 9;
            }

            if (convert)
            {
                canonicalUri = nameTable.Add(uri.Substring(0, offset) + uri.Substring(offset, uri.Length - offset).ToUpperInvariant());
            }
            else
            {
                canonicalUri = uri;
            }

            if (
                Ref.Equal(schemaNames.NsDataTypeAlias, canonicalUri) ||
                Ref.Equal(schemaNames.NsDataTypeOld, canonicalUri)
                )
            {
                canonicalUri = schemaNames.NsDataType;
            }
            else if (Ref.Equal(schemaNames.NsXdrAlias, canonicalUri))
            {
                canonicalUri = schemaNames.NsXdr;
            }

            return(canonicalUri);
        }
Example #7
0
 public BaseProcessor(XmlNameTable nameTable, SchemaNames schemaNames, ValidationEventHandler eventHandler)
     : this(nameTable, schemaNames, eventHandler, new XmlSchemaCompilationSettings())
 {
 }                                                                                        //Use the default for XmlSchemaCollection
Example #8
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);
        }