Altova Mailing List Archives


XMl error: Namespace Manager or XsltContext needed.

From: XMLnewbieUrgentplshelp@-----------.---------.---
To: NULL
Date: 2/16/2006 7:33:00 AM
I am using VB.Net. My program is to connect to a remote IPAddress. Once, it 
verifies the login information it should display the SessionID and enable 
some button . I appreciate your help and thanku in advance 

When I run the pgm , I get the error:
Can't parse login information. Namespace Manager or XsltContext needed. This 
query has a prefix, variable or userdefined function.

I have added the Try-catch in all my functions. In ParseLoginResponse 
function, it catches the above exception.

I am inclding all the functions I am using below:

Private Function SendXmlRequest(ByRef xml As String)

        Try

 
            Dim xmpRequest As HttpWebRequest = WebRequest.Create(XmpUrl)

            ' Instantiate an XmlDocument object to avoid NullReference 
exception

            Dim xmlDoc As XmlDocument

            xmlDoc = New System.Xml.XmlDocument

            'System.Xml.XmlDocument(xmldoc = New System.Xml.XmlDocument)

       
            'Dim xmlDoc As XmlDocument = Nothing


            'Dim xmlReader As XmlTextReader

            'xmlReader = Nothing


            xmpRequest.Method = "POST"
 

            xmpRequest.KeepAlive = True

            xmpRequest.ContentType = "text/xml"

            Dim writer As StreamWriter

            writer = New StreamWriter(xmpRequest.GetRequestStream())

            writer.Write(xml)

            writer.Close()


            'Send the request and get the response

            Dim HttpWResponse As HttpWebResponse = 
CType(xmpRequest.GetResponse(), HttpWebResponse)

 
            'Console.WriteLine("before sending status")


            'Get the status and the headers

 
            Dim iStatCode As Integer = HttpWResponse.StatusCode

            Dim sStatus As String = iStatCode.ToString()

 
            Console.WriteLine("Status: {0} {1}", sStatus, 
HttpWResponse.StatusDescription.ToString())

            Console.WriteLine("Request Headers:")

            Console.WriteLine(xmpRequest)

            Console.WriteLine("Response Headers:")

            Console.WriteLine(HttpWResponse.Headers.ToString())


            'feb15

            If Not HttpWResponse Is Nothing Then

                Dim XmlRead = New 
XmlTextReader(HttpWResponse.GetResponseStream())

                'Dim xmlDoc As XmlDocument

                'xmlDoc = New XmlDocument

                'Dim xmlDoc = New XmlDocument

                xmlDoc.Load(XmlRead)

                Return xmlDoc


            Else

                Console.WriteLine("try again")

 

            End If

 
            'Get the response stream

            Dim strm As Stream = HttpWResponse.GetResponseStream()


            'Read the Response stream

            Dim encode As Encoding = 
System.Text.Encoding.GetEncoding("iso-8859-1")

            Dim sr As New StreamReader(strm, encode)

            Console.WriteLine("Response: {0}", sr.ReadToEnd())

            sr.Close()

            'new feb13

            'Dim doc As New XmlDocument

            'doc.Load(HttpWResponse.GetResponseStream())

            'doc.Save(Console.Out)

 

            'end

            HttpWResponse.Close()


            'Read the response stream

            'Dim sr As StreamReader = New StreamReader(strm)

            'Dim sText As String = sr.ReadToEnd()

            'Console.WriteLine("Response: {0}", sText)

 

            '???Close the stream

            'strm.Close()

 

            'Clean up

            'xmpRequest = Nothing

            'HttpWResponse = Nothing

            'MyCredentialCache = Nothing

            'myCred = Nothing

            'strm = Nothing

            'sr = Nothing

 

            'Feb14

            'If sStatus = 200 Then

            'The Http Request/Response was successful, now we need to check 
the XML that was returned for errors

            'If Not RequestHasErrrors(xmpRequest.responseRext) Then

            'The overall request was successful so begin to parse the 
response XML 

 

            'SendXmlRequest = xmpRequest.responseXml

            'End If

 

            'Else

 

            'End If


                       'End If

            'Else

            'Call MsgBox("There was an error.  ReadyState = " & 
xmpRequest.readyState)

            'End If

 

 

        Catch ex As NullReferenceException

 

            MsgBox("Can't Request page" & vbCrLf & ex.Message)

 

        End Try

 

    End Function

 

    Private Function RequestHasErrors(ByRef xml As String) As Boolean

        ' Check for the high level error Xml in any response before

        ' trying to parse the results.

        If InStr(xml, "<Response><Error>") >= 1 Then

            RequestHasErrors = True

        End If

    End Function

 

    Private Function ParseLoginResponse(ByRef loginDom As XmlDocument) As 
Boolean

        ' See if the login was successful.  If so, get the SessionID.

        ' Otherwise, log the error.

 

        Try


            ParseLoginResponse = False

 

            ' Setup the Dom to use XPath queries and also setup

            ' an Xml namespace prefix for use in the XPath queries.

            'Call loginDom.setProperty("SelectionLanguage", "XPath")

            'loginDom.setProperty("SelectionNamespaces", 
"xmlns:ns='urn:schemas-tms:LoginResponse'")



            Dim filterDoc As New XmlDocument

 

            'Feb14

            'Instantiate an XmlNamespaceManager object

            'Dim nsmgr As XmlNamespaceManager

            'nsmgr = New XmlNamespaceManager(filterDoc.NameTable)

 

            'Add the namespaces used in books.xml to the XmlNamespaceManager.

            'nsmgr.AddNamespace("SelectionLanguage", "XPath")

 

            'nsmgr.AddNamespace("SelectionNamespaces", 
"xmlns:ns='urn:schemas -tms:LoginResponse'")

 

            Dim node As XmlNode

            node = loginDom.SelectSingleNode("ns:LoginResponse/ns:Status")

            'node = New XmlDocument

 

            If node.Value = "Success" Then

                ' The login was 100% successful so get the SessionID.

 

                'new Feb 14

                'If node Is Nothing Then

 

                'for testing

                Console.WriteLine("Login successful: " & node.Value)

                node = 
loginDom.SelectSingleNode("ns:LoginResponse/ns:SessionID")

 

 

                'Dim resultImport As XmlNode

                'resultImport = filterDoc.ImportNode(node, True)

                'filterDoc.AppendChild(resultImport)

                'Return True

                'g_SessionID = node.Value

                ParseLoginResponse = True

                'Console.WriteLine("Login successful: " & node.Value)

 

 

                'Feb14

 

            Else

                'The login was not 100% successful

                node = 
loginDom.SelectSingleNode("ns:LoginResponse/ns:SystemMessage")

                Console.WriteLine("Login unsuccessful: " & node.InnerText)

 

 

 

            End If

 

        Catch ex As Exception

            MsgBox("Can't parse login information" & vbCrLf & ex.Message)

 

 

        End Try

        'Feb13()

        'Return True

        'Else

        ' The login was not 100% successful.

        'node = loginDom.SelectSingleNode("ns:LoginResponse/ns:SystemMessage")

        'Console.WriteLine("Login unsuccessful: " & node.text)

        'End If

        'Feb13

        'loginDom = Nothing

        'node = Nothing

    End Function

 

 

 

 

End Class




Disclaimer

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.