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

    >> DTD, XML Schema(XMLS), RELAX NG
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DTD/XML Schema 』 → 通配符的问题![求助] 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3933 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 通配符的问题![求助] 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     hnunis 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:53
      门派:XML.ORG.CN
      注册:2004/12/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hnunis发送一个短消息 把hnunis加入好友 查看hnunis的个人资料 搜索hnunis在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hnunis的博客楼主
    发贴心情 通配符的问题![求助]

    本人碰到一个问题,先求教如下:
        我在.Net中编写XSD和XML时遇到一个这样的问题:
    第一部分:AllProduct.xsd
       <?xml version="1.0" encoding="utf-8" ?>
    <xs:schema id="AllProduct" targetNamespace="http://www.moons.org/AllProduct.xsd"
    elementFormDefault="qualified"
    xmlns="http://www.moons.org/AllProduct.xsd"
    xmlns:mstns="http://www.moons.org/AllProduct.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:complexType name="Product_Kind">
      <xs:sequence>
       <xs:element name="Pro_Country" type="xs:string" />
       <xs:element name="Pro_Domain" type="xs:string" />
       <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="strict" />
      </xs:sequence>
    </xs:complexType>

    <xs:element name="Product_All" type="mstns:Product_Kind" />
    </xs:schema>

    第二部分:VideoPro.xsd
    <?xml version="1.0" encoding="utf-8" ?>
    <xs:schema id="VideoPro"
                      targetNamespace="http://www.videopro.org/VideoPro.xsd"
                      elementFormDefault="qualified"
                      xmlns="http://www.videopro.org/VideoPro.xsd"
                      xmlns:msvideo="http://www.videopro.org/VideoPro.xsd"
                      xmlns:xs="http://www.w3.org/2001/XMLSchema">
                      
                      <xs:element name ="Video_Name" type ="xs:string"/>
    </xs:schema>

    第三部分:market.xml
    <?xml version="1.0" encoding="utf-8" ?>

    <Pt:Product_All xmlns:Pt = "http://www.moons.org/AllProduct.xsd"
        xmlns:PV="http://www.videopro.org/VideoPro.xsd">
        
    <Pt:Pro_Country>中国</Pt:Pro_Country>
    <Pt:Pro_Domain>深圳</Pt:Pro_Domain>
    <PV:Video_Name>采集卡</PV:Video_Name>

    </Pt:Product_All>

    问题:我在AllProduct.xsd文件中定义了一个<xs:any namespace="##other">通配符,我的目标是在market.xml中使用来自VideoPro.xsd的元素,但是进行验证时老是提示以下的错误
    d:\inetpub\wwwroot\WebDemo\Market.xml(8): 未声明“http://www.videopro.org/VideoPro.xsd:Video_Name”元素。 , (8, 3)处发生了错误。
    d:\inetpub\wwwroot\WebDemo\Market.xml(8): 元素“http://www.moons.org/AllProduct.xsd:Product_All”的内容无效。 , (8, 3)处发生了错误。

    我不知道究竟错在那里,请各路高手指导,谢谢!!!


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/28 11:43:00
     
     doubleG 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)
      文章:591
      积分:4119
      门派:XML.ORG.CN
      注册:2004/5/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客2
    发贴心情 
    从代码上看应该没有问题,如果在xmlspy中进行market.xml和AllProduct.xsd验证时也不会出错,有可能是.net的解析问题,你是用的XmlValidatingReader还是什么呢?有一些W3C的标准它并不支持,比如key的用法是肯定不支持的,你可以查一下相关的资料。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/28 13:56:00
     
     hnunis2004 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      门派:XML.ORG.CN
      注册:2004/12/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hnunis2004发送一个短消息 把hnunis2004加入好友 查看hnunis2004的个人资料 搜索hnunis2004在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hnunis2004的博客3
    发贴心情 
    但是我用的是.Net中的"XML"菜单中的子菜单"验证XML数据"进行验证的,而且我查了一下在.NET中支持通配符标准,在.NET环境中都出现了相关的智能感知提示,应该是没有问题的啊,请高手再次出手相救啊
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/28 23:57:00
     
     doubleG 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)
      文章:591
      积分:4119
      门派:XML.ORG.CN
      注册:2004/5/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客4
    发贴心情 
    没用过.net来验证过XML,在我这里.net压根就locate不了schema,但是在xmlspy里倒是正常的。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/29 9:40:00
     
     anchen0617 帅哥哟,离线,有人找我吗?双子座1983-6-17
      
      
      威望:5
      等级:大二(研究C++)
      文章:281
      积分:3413
      门派:XML.ORG.CN
      注册:2004/10/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给anchen0617发送一个短消息 把anchen0617加入好友 查看anchen0617的个人资料 搜索anchen0617在『 DTD/XML Schema 』的所有贴子 访问anchen0617的主页 引用回复这个贴子 回复这个贴子 查看anchen0617的博客5
    发贴心情 
    楼上的大哥,说的有道理啊

    ----------------------------------------------
    xml这门语言太好了,我们共同努力吧!!!!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/29 20:07:00
     
     anchen0617 帅哥哟,离线,有人找我吗?双子座1983-6-17
      
      
      威望:5
      等级:大二(研究C++)
      文章:281
      积分:3413
      门派:XML.ORG.CN
      注册:2004/10/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给anchen0617发送一个短消息 把anchen0617加入好友 查看anchen0617的个人资料 搜索anchen0617在『 DTD/XML Schema 』的所有贴子 访问anchen0617的主页 引用回复这个贴子 回复这个贴子 查看anchen0617的博客6
    发贴心情 
    楼上的大哥,说的有道理啊

    ----------------------------------------------
    xml这门语言太好了,我们共同努力吧!!!!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/29 20:07:00
     
     hnunis2004 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      门派:XML.ORG.CN
      注册:2004/12/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hnunis2004发送一个短消息 把hnunis2004加入好友 查看hnunis2004的个人资料 搜索hnunis2004在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hnunis2004的博客7
    发贴心情 
    可能大家平时很少用.Net,其实在.NET里编辑XSD,XML和用XSD来验证XML范例是很方便的(至少我现在刚开始用觉得是这样的),比如你如果要用XSD来验证XML的话,那么怎么Locate呢,在XML的编辑页面的属性设置里就有一个targetSchema,用它你可以定位到对应的Schema,另一种方法就是用我刚才的例子直接自己指明所用的Schema,我说得是不是正确还需要各位指正哦,呵呵
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/29 20:39:00
     
     doubleG 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:大三(面向对象是个好东东!)
      文章:591
      积分:4119
      门派:XML.ORG.CN
      注册:2004/5/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doubleG发送一个短消息 把doubleG加入好友 查看doubleG的个人资料 搜索doubleG在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doubleG的博客8
    发贴心情 
    .net里的targetschema方法不符合W3C的规范,而且我改了它还是不认schema,真是无可奈何啊,呵呵。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/12/30 9:17:00
     
     hnunis2004 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      门派:XML.ORG.CN
      注册:2004/12/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hnunis2004发送一个短消息 把hnunis2004加入好友 查看hnunis2004的个人资料 搜索hnunis2004在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hnunis2004的博客9
    发贴心情 
    我在.NET环境下利用C#进行验证,结果如下:
    验证程序:
    using System;
    using System.IO;
    using System.Xml;
    using System.Xml.Schema;


    namespace CheckXMLDemo
    {
     /// <summary>
     /// Class1 的摘要说明。
     /// </summary>
     class XSDMultCheck
     {
      /// <summary>
      /// 应用程序的主入口点。
      /// </summary>
      [STAThread]
      static void Main(string[] args)
      {
       //
       // TODO: 在此处添加代码以启动应用程序
       //
       XSDMultCheck XMLCheckClass = new XSDMultCheck();
       XMLCheckClass.StartCheckXML();
       Console.Read();
      }

      public void StartCheckXML()
      {
       XmlTextReader   pXMLReader = null;
       XmlValidatingReader  pValidatingReader = null;
       try
       {
        string xsdDocOne = "D:\\Documents and Settings\\Administrator\\My Documents\\Visual Studio Projects\\CheckXMLDemo\\AllProduct.xsd";
        string xsdDocSecnd = "D:\\Documents and Settings\\Administrator\\My Documents\\Visual Studio Projects\\CheckXMLDemo\\VideoPro.xsd";
        string xmlDocFile = "D:\\Documents and Settings\\Administrator\\My Documents\\Visual Studio Projects\\CheckXMLDemo\\Market.xml";

        pXMLReader   = new XmlTextReader(xmlDocFile);
        pValidatingReader = new XmlValidatingReader(pXMLReader);

        pValidatingReader.Schemas.Add("http://www.moons.org/AllProduct.xsd",xsdDocOne);
        pValidatingReader.Schemas.Add("http://www.videopro.org/VideoPro.xsd",xsdDocSecnd);

        pValidatingReader.ValidationType = ValidationType.Schema;
        pValidatingReader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);

        while(pValidatingReader.Read());
        Console.WriteLine("XML文档验证完毕!");
       }
       finally
       {
        pXMLReader.Close();
        pValidatingReader.Close();
       }
       
      }

      public void ValidationCallBack(object sender,ValidationEventArgs args)
      {
       
       Console.WriteLine(args.Message);
       
       return ;
      }
     }
    }

    验证结果为:
    "元素“http://www.moons.org/AllProduct.xsd:Product_All”的内容无效。 file:///D:/Documents and Settings/Administrator/My Documents/Visual Studio Projects/CheckXMLDemo/Market.xml, (8, 3)处发生了错误。"

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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gjs0064114发送一个短消息 把gjs0064114加入好友 查看gjs0064114的个人资料 搜索gjs0064114在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gjs0064114的博客10
    发贴心情 
    <根元素 xmlns="http://www.microsoft.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:SchemaLocation="http://www.microsoft.com family.xsd
    http://www.w3schools.com children.xsd">
    你吧xml文件里改成这个样子就ok了

    问你一下那个id是作什么用的?

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

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

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