|
I load in an xml document and validate it ... ok thats the easy part
XmlDocument doc = new XmlDocument();
XmlTextReader tr = new XmlTextReader("Sample.xml");
XmlValidatingReader reader = new XmlValidatingReader(tr);
doc.Load(reader);
there might be several schemas that are used to validate, their location is specified via the xml schemalocation attribute.
Now if I want a table of those locations i presently read and parse the location attribute and manually match up the namespace prefix with the location file via the namespace URI. So i can go and physically read in the validating schemas.
XmlNode myNode = oc.SelectSingleNode("//instance:group",xmlnsmgr);
XmlNodeReader myreader = new XmlNodeReader(myNode);
myreader.Read();
myreader.MoveToAttribute("schemaLocation",this.xml_schema_ns);
String[] schemalist = myreader.Value.Split(new char[] {' '});
The must be a simplier way I dont know about, please if anybody knows can the enlighten me.
Thanks in Advance
James
|
|
|
|
|
please provide the link of different comprehancive examples of com and com+
and a little help how to run it?
r00d0034@yahoo.com
|
|
|
|
|
C# isn't COM or COM+. You can use it through COM Interop in .NET, but you would more likely ask this in the C++ forum.
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
Hi!
I have to use Microsoft Webbrowser AcitveX control in my program.
I'm coding in C#.
I also used this in MFC and it was just fine.
The BeforeNavigate2, and FileDownload events don't work when I use C# and .NET.
These events are not caught.
What is the problem?
Is there a solution for this??
Please, if you know the answer drop me an email.
Thanks.
|
|
|
|
|
Short answer : SyncFusion web browser own interop. Download htmlviewer.zip. There are two samples :
- HtmlViewer2 is useless (applies a .css stylesheet over an html body, using the AxInterop obtained from aximp on the IE ocx).
- HtmlViewer is useful and great : they do their own interop. That's a little tricky, but you don't need to understand the plumbering. In fact, they replace the OnBeforeNavigate2 and OnNavigateComplete events by two new events declared in BrowserNavigateEvent.cs, and used in Form1.cs (a demo app).
That's really funky stuff from the guys of Syncfusion. Hope it helps,
And I swallow a small raisin.
|
|
|
|
|
|
I have two programs, A and B... program A serializes some data into a buffer, attaches via a socket connection to program B, transmits the serialized data via socket to program B, program B then deserializes the data and all is fine. This process works great if programs A and B communicate on the same machine using the following code to obtain the IP Address:
m_ipHostInfo = Dns.Resolve(Dns.GetHostName());
However, if you obtain the IP Address in this manner:
m_ipHostInfo = Dns.Resolve("www.anyplace.com");
... the deserialization fails in program B, complaining about an invalid header or object version difference...
The data is indeed making it from program A to program B by resolving the DNS for the domain, it just seems like it is getting corrupted in some way.
Any suggestions?
Thanks!
|
|
|
|
|
Are you using network streams to transmit the serialized class?
Could you serialize it to a file and then send the file across and then do a check on the file to see if it is the same?
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
I am using async sockets:
private void SendBinary(Socket sock, byte[] buffer)
{
sock.BeginSend(buffer, 0, buffer.Length, 0,
new AsyncCallback(SendBufferCallback), sock);
}
private void SendBufferCallback(IAsyncResult ar)
{
Socket sock = (Socket)ar.AsyncState;
int nBytes = sock.EndSend(ar);
sendDone.Set();
}
I can try to serialize it to a file on the send and receive sides and see what the differences are... if I find differences (which I should), then what do you think the problem is?
|
|
|
|
|
Why do you think you will find differences. It's just copying the byte stream across the sockets. Thus it should be just the same, right?
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
I added code to write out a file of the buffer prior to sending from the client. I also wrote out a file of the buffer received on the host/server via the socket connection. The buffer on the host is larger than the client buffer. I am investigating the differences now... any clues?
|
|
|
|
|
dwebster wrote:
The buffer on the host is larger than the client buffer.
That's the problem. If you have a bigger buffer transmitting to a smaller buffer then some of the first buffer will get chopped off. That is probably why you can't deserialize the class; it's not whole and intact when you try to deserialize it. Can you increase the buffer size on the client?
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
Actually... Program A (the client) is sending to program B (the host/server) and program B (the host/server) winds up having a larger buffer than program A (the client). Also, remember that the buffers are just fine when using Dns.GetHostName() rather than www.anywhere.com to obtain the IP Address... there is some difference in sending the buffer via sockets to the localhost versus sending the buffer via sockets through the internet (using DNS to resolve)...
|
|
|
|
|
Okay. Scrap the buffer theory. Can you look at the actual data that the program is sending over. If you write it to a binary file, then VS.NET can read it...
If there is just "extra" information in the hosts copy of the class, then you could just trim the buffer...
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
ive overrided the drawItem method in my control [derived from ListBox] and wen i insert it into the designer, it moans about the OnDrawItem method, and i just wondered if there was anything special i was supposed to put in it
Email: theeclypse@hotmail.com URL: http://www.onyeyiri.co.uk "All programmers are playwrights and all computers are lousy actors."
|
|
|
|
|
I asked about one or two weeks ago about how could I get the value of an autonumber filed in the record I had just inserted in one step. Several proposed using @@IDENTITY in a second step.
There's a way to do it in one step:
http://www.4guysfromrolla.com/webtech/tips/t122600-1.shtml[^]
I did it like this in C#:
string sSQL = "INSERT INTO Customers (FirstName, LastName) VALUES (' ', ' '); SELECT @@IDENTITY;";
OleDbCommand oCmd = new OleDbCommand(sSQL, oConn);
oCmd = new OleDbCommand(sSQL, oConn);
nCustomerID = Convert.ToInt32(oCmd.ExecuteScalar().ToString());
Hope it helps someone else!
-- LuisR
──────────────
Luis Alonso Ramos
Chihuahua, Mexico
www.luisalonsoramos.com
"Do not worry about your difficulties in mathematics, I assure you that mine are greater." -- Albert Einstein
|
|
|
|
|
Hi all,
How does one assign a property or a member or a string to be the value that is shown in the auto's and local windows? I thought this was ToString() but that doesnt seem to work. I also cant seem to find an Attribute doing this...
I'm particularly interested in "naming" delegated methods. Dont know if this is the same as above?
Any suggestions?
MYrc : A .NET IRC client with C# Plugin Capabilities. See
http://sourceforge.net/projects/myrc for more info.
|
|
|
|
|
|
Thx David, but that is not it, all they discuss there in in VB terms what an indexer in C# is.
If you look at a control for example, its Text property is shown instead of the class name, which is default.
MYrc : A .NET IRC client with C# Plugin Capabilities. See
http://sourceforge.net/projects/myrc for more info.
|
|
|
|
|
Perhaps it uses the DefaultProperty attribute? I'm not seeing anything where it says what it uses so I'm just as lost as you are
James
"And we are all men; apart from the females." - Colin Davies
|
|
|
|
|
I found this in the Control classes MSIL:
.custom instance void [System]System.ComponentModel.DefaultPropertyAttribute::.ctor(string) = ( 01 00 04 54 65 78 74 00 00 )
So there is a DefaultProperty attribute in the System.ComponentModel namespace. I bet that's what needs to be implemented.
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
I'm having a problem with a simple String "Replace"
I am passing in a GUID into the function (see code below).
The GUID includes "{-}" characters. The function below should strip those chars,
but it is returning the original string.
Any suggestions? tia.
private string StripPunctuation(string sourceString )
{
int counter;
string PunctuationCharacters;
string buffer = sourceString;
int StringLength;
PunctuationCharacters = "`!@$%^*()+=\\|[]{};:<>/?,~";
StringLength = PunctuationCharacters.Length;
buffer.Trim();
try
{
for (counter = 1 ; counter < StringLength ; counter++)
{
buffer.Replace( PunctuationCharacters.Substring(counter, 1), "");
}
buffer.Replace((char) 34, (char) 0);
return buffer;
}
catch
{
return sourceString;
}
}
Mike Stanbrook
mstanbrook@yahoo.com
|
|
|
|
|
strings in .NET are immutable; so when you call Replace on a string object it doesn't modify it; instead it returns a new string object containing the modified text.
James
"And we are all men; apart from the females." - Colin Davies
|
|
|
|
|
Hmm.. I guess I skipped that chapter...
So an alternative would be:
buffer = buffer.Replace("x","y");
thanks.
Mike Stanbrook
mstanbrook@yahoo.com
|
|
|
|
|
A much better alternative would be to use Regular Expressions; that's what they're made for.
The regex to match everything in a string except for {, -, and } is: "[^-{}]" . So, in a one-liner:
buffer = System.Text.RegularExpressions.Regex.Match(buffer, "[^-{}]");
Much better, no?
-Domenic Denicola- [CPUA 0x1337]
MadHamster Creations
"I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
|
|
|
|