程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 操作 XML 數據庫類型、Oracle XMLType(2)

C# 操作 XML 數據庫類型、Oracle XMLType(2)

編輯:關於C語言

3個類:電話、電話類型(枚舉)、電話類型集合;

以Phones 類生成 Schema ,用 .Net sdk 的 xsd.exe 或自己寫代碼都可以生成的、我就不多說了;

Schema 這東西如果純手寫也是勞動量巨大的;謝謝.Net 為我們提供這個功能吧;

Schema如下:

<xs:schema elementFormDefault="qualifIEd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Phones" nillable="true" type="ArrayOfPhone" />
  <xs:complexType name="ArrayOfPhone">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Phone" nillable="true" type="Phone" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Phone">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Code" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="Type" type="PhoneType" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="PhoneType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="未知" />
      <xs:enumeration value="移動" />
      <xs:enumeration value="固定" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

二、我們創建一個數據表、並包含這個和上邊 C# 類對應的的 XML 類型;

BEGIN
    -- 注冊架構
  DBMS_XMLSCHEMA.registerschema(schemaurl => 'http://www.OracleDemo.com/Phones.xsd',
                                schemadoc => '<xs:schema elementFormDefault="qualifIEd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Phones" nillable="true" type="ArrayOfPhone" />
  <xs:complexType name="ArrayOfPhone">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Phone" nillable="true" type="Phone" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Phone">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Code" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="Type" type="PhoneType" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="PhoneType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="未知" />
      <xs:enumeration value="移動" />
      <xs:enumeration value="固定" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>',

                                local     => TRUE,
                                gentypes  => TRUE,
                                genbean   => FALSE,
                                gentables => TRUE);
END;
--會建立 xml 描述的【Oracle自定義類型】
-- 如果用Oracle 工具查看 Types 下會出現一些如 Phone***_T,phone***_coll,ArrayOfPhone***_T 類似名稱的 【Oracle自定義類型】
-- 結構就和xml schema 是一樣
-- gentables => TRUE 還會建立一些表;
-- 如 create table Phones721_TAB of SYS.XMLTYPE --物理表
-- create table SYS_NTyIVemDaJQXqHZgjqYv+haQ== of Phone711_T --自定義類型表
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved