Code Bye

如何根据xsd文件或者xml文件建立数据库表

 

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。希望大家能给点建议。如果有有用的链接也发来看看


15分
你解析出这个xsd信息,然后拼创建表的sql就可以了
create table tradeInformation
( id int,
  tradedate date,
  tradeTime time)
引用 1 楼 gxingmin 的回复:

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

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


15分
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.连接数据库,执行


10分
BTW,你的xsd文件最后掉了一个</xs:schema>
害死我,还有掉了sechma 还有  http://www/w3.org   应该是 www.w3.org

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何根据xsd文件或者xml文件建立数据库表