首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 操作 XML 資料庫類型:Oracle XMLType 實戰(二)——註冊 Schema 產生自訂型別與表

     編輯:關於C語言

類別結構

  • Phone:電話號碼、類型
  • PhoneType:列舉 (未知/移動/固定)
  • Phones:List<Phone> 集合,含 Add(code, type) 便利方法

從類別產生 XSD

使用 xsd.exe 或程式碼產生,輸出 Schema:


<xs:schema elementFormDefault="qualified" xmlns:xs="https://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>

Oracle 註冊 Schema (PL/SQL)


BEGIN
  DBMS_XMLSCHEMA.registerschema(
    schemaurl => 'https://www.OracleDemo.com/Phones.xsd',
    schemadoc => '<xs:schema ...> ... </xs:schema>',
    local => TRUE,
    gentypes => TRUE,    -- 產生 Oracle 自訂型別
    genbean => FALSE,
    gentables => TRUE    -- 產生物理表
  );
END;

註冊副作用:自動建立型別與表

  • 自訂型別:Phone*_T、ArrayOfPhone*_T 等對應 XSD 結構
  • 物理表:Phones721_TAB of SYS.XMLTYPE
  • 嵌套表:SYS_NT... of Phone711_T

結構與 XSD 完全對應,為後續建表奠基。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved