要生成的soap xml示例代码如下:<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <SOAP-ENV:Body>
    <m:Login xmlns:m="http://tempuri.org/">
      <m:UserName>String</m:UserName>
      <m:PassWord>String</m:PassWord>
    </m:Login>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
使用jdom api的java程序代码:Namespace ns_SOAP_ENV = Namespace.getNamespace("SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/");
Namespace ns_SOAP_ENC = Namespace.getNamespace("SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/");
Namespace ns_xsi = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
Namespace ns_xsd = Namespace.getNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
Namespace ns_m = Namespace.getNamespace("m", "http://tempuri.org/");Element Envelope = new Element("Envelope");
Envelope.setNamespace(ns_SOAP_ENV);
Envelope.addNamespaceDeclaration(ns_SOAP_ENC);
Envelope.addNamespaceDeclaration(ns_xsi);
Envelope.addNamespaceDeclaration(ns_xsd);Element Body = new Element("Body");
Body.setNamespace(ns_SOAP_ENV);Element Login = new Element("Login");
Login.setNamespace(ns_m);Element UserName = new Element("UserName").addContent("username");
UserName.setNamespace(ns_m);Element PassWord = new Element("PassWord").addContent("password");
PassWord.setNamespace(ns_m);Login.addContent(UserName).addContent(PassWord);
Body.addContent(Login);
Envelope.addContent(Body);Document soapDoc = new Document(Envelope);

解决方案 »

  1.   

    这些事情不应该由你自己来做,应该交给Web Service SDK 取做
    你所关心的应该是具体的内容和业务逻辑。
      

  2.   

    555……
    好没面子!
    我只是想操练一下jdom关于namespace的用法
      

  3.   

    ^_^
    还有件事情想麻烦楼上的共军同志:
    ---------------------------------------------------------
    斑竹,你说的这些都是概念性的东西,这个网上一拓一拓的,我只是想知道一些实际的东西,能提高开发效率的东西,打个比方说吧,你用axis部署webservice的时候,你用什么工具写server-deploy.wsdd?记事本?xml spy?仰或有专用工具?你写webservice的时候,是先写wsdl文件,然后生成相应语言框架,还是直接用某种语言写程序??好多经验性的东西,都必须是在大量的实践中才可以总结的,所以我希望斑竹能透露一下,让后来学习的人能少走弯路。
    ---------------------------------------------------------
    如果有时间的话,能否就这个问题写点东西?
      

  4.   

    that's right! you can do it using Api of soap.
    Building a soap message use DOM ,unless you do it at Javascript
      

  5.   

    请问那个创建命明空间的需要导入什么包?

    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.output.*;
    好象不行
    我听说可以用soap的包来解析是吗?
      

  6.   

    不行,zcjl() 你的代码跳出这个错误
    [Document:  No DOCTYPE declaration, Root is [Element: <SOAP-ENV:Envelope [Namespace: http://schemas.xmlsoap.org/soap/envelope/]/>]]