System.Xml.XmlSubtreeReader.ProcessNamespaces C# (CSharp) Méthode

ProcessNamespaces() private méthode

private ProcessNamespaces ( ) : void
Résultat void
        private void ProcessNamespaces() {
            switch ( reader.NodeType ) {
                case XmlNodeType.Element:
                    nsManager.PushScope();

                    string prefix = reader.Prefix;
                    string ns = reader.NamespaceURI;
                    if ( nsManager.LookupNamespace( prefix ) != ns ) {
                        AddNamespace( prefix, ns );
                    }

                    if ( reader.MoveToFirstAttribute() ) {
                        do {
                            prefix = reader.Prefix;
                            ns = reader.NamespaceURI;

                            if ( Ref.Equal( ns, xmlnsUri ) ) {
                                if ( prefix.Length == 0 ) {
                                    nsManager.AddNamespace( string.Empty, reader.Value );
                                    RemoveNamespace( string.Empty, xmlns );
                                }
                                else {
                                    prefix = reader.LocalName;
                                    nsManager.AddNamespace( prefix, reader.Value );
                                    RemoveNamespace( xmlns, prefix );
                                }
                            }
                            else if ( prefix.Length != 0 && nsManager.LookupNamespace( prefix ) != ns ) {
                                AddNamespace( prefix, ns );
                            }
                        } while ( reader.MoveToNextAttribute() );
                        reader.MoveToElement();
                    }

                    if ( reader.IsEmptyElement ) {
                        state = State.PopNamespaceScope;
                    }
                    break;
                case XmlNodeType.EndElement:
                    state = State.PopNamespaceScope;
                    break;
            }
        }