XML over TCP
Èç¹ûÒªÍêÕûµÄÖ§³ÖXML over TCP£¬Ö»ÓÐÁ½ÖÖ°ì·¨£º
1£¬¼ÓÒ»¸öheaderÈ¥±êÃ÷Êý¾ÝµÄ³¤¶È
2£¬¼ÓÒ»¸ödelimiterÈ¥±êÃ÷Êý¾ÝµÄ½áÊø
ÕâÁ½ÖÖ·½·¨¶¼²»¹»ÓÅÑÅ¡£ÎÒÃDz»ÐèÒªÒ»¸öͨÓõķ½·¨£¬ÎÒÃÇÖ»ÒªÒ»¸ö×îÊʺÏÎÒÃǵķ½·¨¡£
ͨ³££¬ÎÒÃÇÄܹ»×Ô¶¨ÒåÊý¾ÝµÄ¸ñʽ£¬¶øÇÒÎÒÃÇͨ³£Ò»ÌõÏûÏ¢Ö»ÓÐÒ»¸öroot node£¬ÄÇôÎÒÃÇ¿ÉÒÔÊÔÊÔÏÂÃæµÄº¯Êý£º
//return length of the xml message
//return -1 for invalid data
//return 0 for not fully received
int GetXmlLen(string buf, string rootName)
{
string head = "<" + rootName;
if (buf.Length < head.Length)
{
//not fully recved
return 0;
}
if (!buf.StartsWith(head))
{
//invalid
return -1;
}
int idx = buf.IndexOf('>');
if (idx < 0)
{
//not fully recved
return 0;
}
if (buf[idx-1] == '/')
{
//empty root element
return (idx + 1);
}
string tail = "</" + rootName + ">";
idx = buf.IndexOf(tail);
if (idx < 0)
{
//not fully recved
return 0;
}
return (idx + tail.Length);
}
ÒªÇó£ºXMLÏûÏ¢Ö»ÓÐÒ»¸öroot node£¬rootName²»ÊÇÈκÎ×Ó½ÚµãµÄÃû×Ö£¬¶øÇÒÏûÏ¢ÊÇÒÔ"/>"»òÕß"</rootName>"½áβ¡£
Õâ²¢²»ÊǺܿÁ¿ÌµÄÒªÇ󣬴ó¶àÊý»ùÓÚXMLµÄÐÒéʵ¼ÊÉϾÍÊÇÕâÑùµÄ¡£
Èç¹ûÄãµÄXMLÐÒéÂú×ãÉÏÊöÒªÇó£¬ÄÇôµ±ÄãÔÚTCPÉÏ´«ÊäXMLµÄʱºò£¬¾Í¿ÉÒÔÊÔÊÔÎҵĺ¯Êý¡£
PS£ºÕâ¸öʾÀýº¯ÊýÊÇÓÃC#дµÄ£¬ÓÃÆäËûÓïÑÔÒ²ºÜÈÝÒ×ʵÏÖͬÑùµÄ¹¦ÄÜ¡£
Ïà¹ØÎĵµ£º
µ¼Èëjdom1.1°æ
http://www.jdom.org/dist/binary/
import java.io.FileReader;
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
public class XMLValidate {
public void validate(String xml, String schema) {
try {
SAXBuilder builder = new SAXBuilder(true);
//Ö¸¶¨Ô¼Êø·½ ......
ÐèÒªdom4j.jarÎļþ £¬×ÔÐÐÏÂÔØ¡£ test.xml 1: <?xml version="1.0" encoding="gbk"?>
2:
3: <students>
4: <person sex="ÄÐ" age="21">
5: <id>1</id>
6: <name>ÕÂÖÎÅô</name>
7: <homepage&g ......
Ê×ÏÈÎÒÃǸø³öÒ»¶ÎʾÀý³ÌÐò£º
import
java.io.File;
import
java.io.FileWriter;
import
java.util.Iterator;
import
org.dom4j.Document;
import
org.dom4j.DocumentHelper;
import
org.dom4j.Element;
import
org.dom4j.io.OutputFormat;
import
org.dom ......
Ò»£ºSpringÖеļ¸ÖÖÈÝÆ÷¶¼Ö§³ÖʹÓÃxml×°Åäbean£¬°üÀ¨£º
XmlBeanFactory £¬
ClassPathXmlApplicationContext £¬
FileSystemXmlApplicationContext £¬
XmlWebApplicationContext
¼ÓÔØÕâЩÈÝÆ÷µÄÅäÖÃÎļþµÄxmlÓÐһϼ¸ÖÖ³£¼ûµ ......
package demo.oath ;
import org.jdom.* ;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class AccountHelper
{
......