您好,我对 Oracle XMLDB Express Edition 10g 有疑问。
我正在尝试通过
dbms_xmlschema.registerSchema 注册一个完全有效且正常工作的 .xsd 架构,
但不断收到 ORA-01741:非法零长度标识符
我已经尝试了一切:对我的 xsd 和查询代码进行了三次检查。
Oracle 论坛上有几个主题,但没有答案。
请帮忙。
这是我的代码:
begin
dbms_xmlschema.registerSchema(
'opta',
'<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.example.org/opta/" targetNamespace="http://www.example.org/opta/">
<xs:element name="Document">
<xs:complexType>
<xs:sequence>
<xs:element name="Order" type="tns:Order" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Order">
<xs:sequence>
<xs:element name="Products" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Product" type="tns:Product" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Date" type="xs:date" minOccurs="1"/>
<xs:element name="Client" type="tns:Client" minOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:int"/>
</xs:complexType>
<xs:complexType name="Product">
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Price" type="xs:int"/>
<xs:element name="Amount" type="xs:int"/>
<xs:element name="Producer" type="tns:Producer"/>
<xs:element name="Type" type="xs:string"/>
</xs:sequence>
<xs:attribute name="id" type="xs:int"/>
</xs:complexType>
<xs:complexType name="Producer">
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Organization" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Client">
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Organization" type="xs:string"/>
<xs:element name="Country" type="xs:string"/>
<xs:element name="City" type="xs:string"/>
<xs:element name="Address" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
');
end;