xsd文件定义了xml文件的架构。如果一个xsd文件定义了一个数据库里表的结构,比如:<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" target-Namespace="http://www.contoso.com/books" xmlns:xs
="http://www/w3.org/2001/XMLSchema">
<xs:element name="tradeInformation">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="id"  type="xs:int">
        <xs:element name="tradeDate"  type="xs:date"/>
        <xs:element name="tradeTime"  type="xs:time"/>
       </xs:sequence>
    </xs:complexType>
</xs:element>
如何遍历这个文件然后建表,表名为tradeInformation.里面有字段id,tradeDate,tradeTime。希望大家能给点建议。如果有有用的链接也发来看看

解决方案 »

  1.   

    你解析出这个xsd信息,然后拼创建表的sql就可以了
    create table tradeInformation
    ( id int,
      tradedate date,
      tradeTime time)
      

  2.   

    关键是自动化的建表啊,也就是说xsd文件时别人任意给你的,里面的结构不确定啊
    还有,解析xsd文件是不是和解析xml文件时一样的?
      

  3.   

    1.解析xml
    DataSet ds = new DataSet();
    ds.ReadXmlSchema(filePath);
    2.找到列信息
    ds.Tables[0].TableName;
    ds.Tables[0].Columns[0].ColumnName;
    ds.Tables[0].Columns[0].DataType;
    3.生成脚本:
    DECLARE
     FLAG NUMBER;
    BEGIN
    FLAG := 0;
    SELECT COUNT(TABLE_NAME) INTO FLAG FROM USER_TABLES WHERE TABLE_NAME='TableName';
    IF FLAG > 0  THEN
    EXECUTE IMMEDIATE 'DROP TABLE TableName CASCADE CONSTRAINTS';
    END IF;
    EXECUTE IMMEDIATE 'CREATE TABLE TableName (  
    id VARCHAR2(1) DEFAULT '' '' NOT NULL,
    ...
    ...
    ) ';EXECUTE IMMEDIATE 'COMMENT ON TABLE TableName IS ''xxx''';end;
    4.连接数据库,执行
      

  4.   

    BTW,你的xsd文件最后掉了一个</xs:schema>