显然是格式不完好的XML,贴出map文件。 
我还以为国内没有人用xmldbms开源项目,做关系数据库和xml的映射挺好的。推荐!

解决方案 »

  1.   

    这是我的map文件:<?xml version="1.0" encoding="GB2312"?>
    <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by myname (tsinghua university) -->
    <Mapping>
    <MappingInfo>
    <DestFilePathName>E:\Work\数据交换平台\DBXML\代码\mappingFile.xsd</DestFilePathName>
    <ConnectionInfo>
    <Driver>oracle.jdbc.driver.OracleDriver</Driver>
    <URL>jdbc:oracle:thin:@yf:1521:kjb</URL>
    <User>EAI</User>
    <Password>eai</Password>
    </ConnectionInfo>
    <Map>
    <Destination>test/test001</Destination>
    <Source>EAI.AGRESOURCES.ATTRIBUTES</Source>
    </Map>
    <Map>
    <Destination>test/test002</Destination>
    <Source>EAI.AGRESOURCES.RESOURCE_SID</Source>
    </Map>
    </MappingInfo>
    <XMLToDBMS Version="1.0">
    <Options>
    <EmptyStringIsNull/>
    </Options>
    <Maps>
    <ClassMap>
    <ElementType Name="test"/>
    <ToRootTable>
    <Table Name="Result Set"/>
    </ToRootTable>
    <PropertyMap>
    <ElementType Name="test001"/>
    <ToColumn>
    <Column Name="ATTRIBUTES"/>
    </ToColumn>
    </PropertyMap>
    <PropertyMap>
    <ElementType Name="test002"/>
    <ToColumn>
    <Column Name="RESOURCE_SID"/>
    </ToColumn>
    </PropertyMap>
    </ClassMap>
    </Maps>
    </XMLToDBMS>
    </Mapping>
      

  2.   

    看你的文档,你是使用XMLDBMS1.0版本,可是该文档的根只能是XMLToDBMS,不知道你的Mapping和MappingInfo从哪里来的,2.0版本也不是这样的。你的出错信息说明了根元素XMLToDBMS前面的标记有问题。
        也许你用的是它的修改版本,跟我说的不一样。如果是这样,你可以贴出DTD文件看看。
      

  3.   

    又有错报:
    Unrecognized XML-DBMS mapping language element type: Mapping
    出先这种错误表示什么?
      

  4.   

    我把这个map文件重新贴一下:<?xml version="1.0" encoding="GB2312"?> 
    <Mapping> 
    <MappingInfo> 
    <DestFilePathName>mappingFile.xsd</DestFilePathName> 
    <ConnectionInfo> 
    <Driver>oracle.jdbc.driver.OracleDriver</Driver> 
    <URL>jdbc:oracle:thin:@de:1521:ec</URL> 
    <User>EAI</User> 
    <Password>kTMp+P5Aszc=</Password> 
    </ConnectionInfo> 
    <Map> 
    <Destination>test/test001</Destination> 
    <Source>EAI.AGRESOURCES.EXECUTEACCESS</Source> 
    </Map> 
    <Map> 
    <Destination>test/test002</Destination> 
    <Source>EAI.AGRESOURCES.RESOURCE_SID</Source> 
    </Map> 
    </MappingInfo> 
    <XMLToDBMS Version="1.0"> 
    <Options> 
    <EmptyStringIsNull/> 
    </Options> 
    <Maps> 
    <ClassMap> 
    <ElementType Name="test"/> 
    <ToRootTable> 
    <Table Name="Result Set"/> 
    </ToRootTable> 
    <PropertyMap> 
    <ElementType Name="test001"/> 
     <ToColumn> 
    <Column Name="EXECUTEACCESS"/> 
    </ToColumn> 
    </PropertyMap> 
    <PropertyMap> 
    <ElementType Name="test002"/> 
     <ToColumn> 
    <Column Name="RESOURCE_SID"/> 
    </ToColumn> 
    </PropertyMap> 
    </ClassMap> 
    </Maps> 
    </XMLToDBMS> 
    </Mapping>
      

  5.   

    to:stoger() 
    Mapping 和MappintInfo都是自己定义的
      

  6.   

    你是怎么解析你的Map文件,肯定用XMLToDBMS包吧,在它的规范中Map文件有自己的格式,你必须符合它的格式,不能自己定义的。以下是它的DTD:<!ELEMENT XMLToDBMS (Options*, Maps)>
    <!ATTLIST XMLToDBMS
              Version CDATA #FIXED "1.0"><!ELEMENT Options (EmptyStringIsNull?, DateTimeFormats?, Namespace*)><!ELEMENT EmptyStringIsNull EMPTY><!ELEMENT DateTimeFormats (Locale?, Patterns)>
    <!ELEMENT Locale EMPTY>
    <!ATTLIST Locale
              Language NMTOKEN #REQUIRED
              Country NMTOKEN #REQUIRED>
    <!ELEMENT Patterns EMPTY>
    <!ATTLIST Patterns
              Date CDATA #IMPLIED
              Time CDATA #IMPLIED
              Timestamp CDATA #IMPLIED><!ELEMENT Namespace EMPTY>
    <!ATTLIST Namespace
              Prefix NMTOKEN #REQUIRED
              URI CDATA #REQUIRED><!ELEMENT Maps (IgnoreRoot*, ClassMap+)>
    <!ELEMENT IgnoreRoot (ElementType, PseudoRoot+)>
    <!ELEMENT PseudoRoot (ElementType, CandidateKey?, OrderColumn?)><!ELEMENT ClassMap (ElementType,
                        (ToRootTable | ToClassTable),
                        PropertyMap*, RelatedClass*)><!ELEMENT ToRootTable (Table, CandidateKey?, OrderColumn?)>
    <!ELEMENT ToClassTable (Table)><!ELEMENT PropertyMap ((Attribute | PCDATA | ElementType),
                           (ToColumn | ToPropertyTable),
                           OrderColumn?)><!ELEMENT ToColumn (Column)>
    <!ELEMENT ToPropertyTable (Table, CandidateKey, ForeignKey, Column)>
    <!ATTLIST ToPropertyTable
              KeyInParentTable (Candidate | Foreign) #REQUIRED><!ELEMENT RelatedClass (ElementType,
                            CandidateKey, ForeignKey,
                            OrderColumn?)>
    <!ATTLIST RelatedClass
              KeyInParentTable (Candidate | Foreign) #REQUIRED><!ELEMENT CandidateKey (Column+)>
    <!ATTLIST CandidateKey
              Generate (Yes | No) #REQUIRED>
    <!ELEMENT ForeignKey (Column+)><!ENTITY % XMLName "Name NMTOKEN #REQUIRED">
    <!ELEMENT ElementType EMPTY>
    <!ATTLIST ElementType
              %XMLName;>
    <!ELEMENT Attribute EMPTY>
    <!ATTLIST Attribute
              %XMLName;
              MultiValued (Yes | No) "No">
    <!ELEMENT PCDATA EMPTY><!ENTITY % DatabaseName "Name CDATA #REQUIRED">
    <!ELEMENT Table EMPTY>
    <!ATTLIST Table
              %DatabaseName;>
    <!ELEMENT Column EMPTY>
    <!ATTLIST Column
              %DatabaseName;>
    <!ELEMENT OrderColumn EMPTY>
    <!ATTLIST OrderColumn
              %DatabaseName;
              Generate (Yes | No) #REQUIRED>
      

  7.   

    我明白一写了,估计我解析我那个map文件时需要将XMLDBMS这一部分提取出来,形成符合XMLToDBMS包规范的map文件。
    其他的可能是用来操作数据库等的信息。