Phone:電話號碼、類型PhoneType:列舉 (未知/移動/固定)Phones:List<Phone> 集合,含 Add(code, type) 便利方法使用 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>
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.XMLTYPESYS_NT... of Phone711_T結構與 XSD 完全對應,為後續建表奠基。