新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> DTD, XML Schema(XMLS), RELAX NG
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DTD/XML Schema 』 → 怎样编写java程序验证XML文档是否符合XML Schema? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6384 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 怎样编写java程序验证XML文档是否符合XML Schema? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     grand 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2004/11/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给grand发送一个短消息 把grand加入好友 查看grand的个人资料 搜索grand在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看grand的博客楼主
    发贴心情 怎样编写java程序验证XML文档是否符合XML Schema?

    比如XML 文档:
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by rth77 (rth77) -->
    <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cst="http://schemas.dbs.com/icc/CustomerSvc" xmlns:ems="http://schemas.dbs.com/icc/ems" xmlns:op="http://schemas.dbs.com/icc/CRMSvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/  C:/FPS_HOME/cfg/Schema/OpptyAdd/schema/OpptyAdd.xsd">
     <Header>
      <ems:EMSDetail mustUnderstand="false">
       <ems:MsgVersion>1.1</ems:MsgVersion>
       <ems:MsgUID>OOOOOOOOOOOOOOO041112153055064122991</ems:MsgUID>
       <ems:SvcVersion>1.0</ems:SvcVersion>
      </ems:EMSDetail>
      <ems:Trace mustUnderstand="false">
       <ems:RqDateTime>2004-11-12T03:30:55+08:00</ems:RqDateTime>
       <ems:RqClient>
        <ems:RqClientId>FPS</ems:RqClientId>
        <ems:RqClientOrg>0001</ems:RqClientOrg>
        <ems:RqClientCtry>SG</ems:RqClientCtry>
       </ems:RqClient>
       <ems:Operator>
        <ems:OpLoginId/>
        <ems:OpRole>TELLER</ems:OpRole>
       </ems:Operator>
      </ems:Trace>
      <ems:Security/>
     </Header>
     <Body>
      <op:OpptyAdd>
       <ems:CommonRq>
        <ems:ChannelId>00</ems:ChannelId>
        <ems:EnableSAF>false</ems:EnableSAF>
       </ems:CommonRq>
       <ems:RqSysRef>FPS041109134414230204181</ems:RqSysRef>
       <ems:OrgCode>0001</ems:OrgCode>
       <op:SalesMethod>WALK IN</op:SalesMethod>
       <op:DeptProdGrp>CBG-FINANCIAL PLANNING</op:DeptProdGrp>
       <op:SalesCycle>05</op:SalesCycle>
       <op:SalesStaffDetl>
        <op:SalesStaffId>204181</op:SalesStaffId>
       </op:SalesStaffDetl>
       <op:ReferralSource>EMPLOYEE</op:ReferralSource>
      </op:OpptyAdd>
     </Body>
    </Envelope>

    XMLSchema如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by ITG-Business Management Office (DBS Bank) -->
    <!-- edited with XMLSPY v5 U (http://www.xmlspy.com) by micaela ng (itg amg) -->
    <xs:schema targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ems="http://schemas.dbs.com/icc/ems" xmlns:op="http://schemas.dbs.com/icc/CRMSvc" xmlns:cst="http://schemas.dbs.com/icc/CustomerSvc" elementFormDefault="qualified" attributeFormDefault="unqualified">
     <xs:include schemaLocation="SOAP_Header_v1_2.xsd"/>
     <xs:import namespace="http://schemas.dbs.com/icc/CRMSvc" schemaLocation="OpptyAddOp.xsd"/>
     <xs:element name="Envelope">
      <xs:annotation>
       <xs:documentation>SOAP Envelope</xs:documentation>
       <xs:documentation>EMS Version: 1.1
    Service Version: 1.0</xs:documentation>
       <xs:documentation>Operation Id: OpptyAdd
    Service Id: CRMSvc

    Description: Add revenue generating item for the Bank to a given contact record
    Scope: CRM for S'pore only
    Availability: Subject to service provider availability
    </xs:documentation>
       <xs:documentation>Please refer to "Foundation for EMS.doc" for list of possible error codes</xs:documentation>
       <xs:documentation>2004-11-10: Add optional CustType to OpptyAdd message </xs:documentation>
      </xs:annotation>
      <xs:complexType>
       <xs:sequence>
        <xs:element ref="Header"/>
        <xs:element name="Body">
         <xs:annotation>
          <xs:documentation>SOAP Body element</xs:documentation>
         </xs:annotation>
         <xs:complexType>
          <xs:choice>
           <xs:element ref="op:OpptyAdd"/>
           <xs:element ref="op:OpptyAddResponse"/>
           <xs:element ref="Fault"/>
          </xs:choice>
         </xs:complexType>
        </xs:element>
       </xs:sequence>
      </xs:complexType>
     </xs:element>
    </xs:schema>


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/11/20 13:55:00
     
     小懒龙 美女呀,离线,快来找我吧!
      
      
      等级:大二期末(汇编考了97分!)
      文章:39
      积分:328
      门派:XML.ORG.CN
      注册:2004/8/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给小懒龙发送一个短消息 把小懒龙加入好友 查看小懒龙的个人资料 搜索小懒龙在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看小懒龙的博客2
    发贴心情 
    这个。。。一般情况下不用自己写程序来验证的呀。解析器如果支持合法性验证的话,在LoadXML文档的时候就完成验证了。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/4 18:17:00
     
     xmzhy 帅哥哟,离线,有人找我吗?狮子座1978-8-18
      
      
      威望:5
      等级:计算机学士学位
      文章:385
      积分:2003
      门派:XML.ORG.CN
      注册:2003/10/22

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给xmzhy发送一个短消息 把xmzhy加入好友 查看xmzhy的个人资料 搜索xmzhy在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看xmzhy的博客3
    发贴心情 
    ding
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/6 11:02:00
     
     wxb_nudt 帅哥哟,离线,有人找我吗?
      
      
      等级:大三(要不要学学XML呢?)
      文章:72
      积分:505
      门派:XML.ORG.CN
      注册:2004/12/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wxb_nudt发送一个短消息 把wxb_nudt加入好友 查看wxb_nudt的个人资料 搜索wxb_nudt在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wxb_nudt的博客4
    发贴心情 
    使用XMLSPY,它会自动为你验证XML schema的合法性,如果不合法,就在你要存储XML文件时报错!

    ----------------------------------------------
    我的blog:MDA之路!欢迎讨论MDA,XML,UML,Eclipse,JAVA的朋友来看看。
    http://www.blogjava.net/wxb_nudt/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/9 19:17:00
     
     LeslieZhu 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:54
      门派:XML.ORG.CN
      注册:2005/1/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给LeslieZhu发送一个短消息 把LeslieZhu加入好友 查看LeslieZhu的个人资料 搜索LeslieZhu在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看LeslieZhu的博客5
    发贴心情 
    我想楼主的意思是他的xml文件格式是否符合他定义的schema吧
    我也想知道
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/24 15:20:00
     
     dongdonga 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:14
      积分:112
      门派:XML.ORG.CN
      注册:2004/12/31

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给dongdonga发送一个短消息 把dongdonga加入好友 查看dongdonga的个人资料 搜索dongdonga在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看dongdonga的博客6
    发贴心情 
    我也想知道,帮你up!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/27 13:14:00
     
     yetties 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:70
      注册:2003/11/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给yetties发送一个短消息 把yetties加入好友 查看yetties的个人资料 搜索yetties在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看yetties的博客7
    发贴心情 
    如果不符合schema,xml文档能正常显示吗?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/1/29 11:57:00
     
     maxgong 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:55
      门派:XML.ORG.CN
      注册:2005/10/8

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给maxgong发送一个短消息 把maxgong加入好友 查看maxgong的个人资料 搜索maxgong在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看maxgong的博客8
    发贴心情 
    public boolean validate(InputStream in, InputStream schema, ErrorHandle errorHandle)
                throws Exception {
            log.debug("DefaultParser.validate() begin:");
            boolean result = false;
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(true);
            factory.setValidating(true);
            factory.setAttribute(SCHEMA_LANGUAGE, XML_SCHEMA);
            factory.setAttribute(SCHEMA_SOURCE, schema);
            DocumentBuilder parser = factory.newDocumentBuilder();
            parser.setErrorHandler(errorHandle);

            parser.parse(in);

            if (errorHandle.getMsgList().size() == 0) {
                result = true;
            }
            log.debug("DefaultParser.validate() result:" + result);
            return result;
        }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/10/8 16:24:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DTD/XML Schema 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/14 3:47:21

    本主题贴数8,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    110.352ms