当前位置: 首页 > 知识库问答 >
问题:

模式ORA-06512中的标记断言错误:en“XDB.DBMS\u XMLSCHEMA”

弓俊晖
2023-03-14

运行此代码时出现以下错误:

ERROR en lÝnea 1: ORA-30937: No hay ninguna definici¾n de esquema para
'assert' (espacio de nombres 'http://www.w3.org/2001/XMLSchema') en el
principal
 '/schema/element[1]/complexType/sequence/element[1]/complexType/sequence/element[3]/complexType' 
ORA-06512: en "XDB.DBMS_XMLSCHEMA_INT", lÝnea 3
ORA-06512: en "XDB.DBMS_XMLSCHEMA", lÝnea 14 
ORA-06512: en lÝnea 31

代码是pl/sql版本oracle BD 11g

Oracle Database 11g Enterprise Edition 11.2.0.1.0版


declare
  doc varchar2(30000) := '<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning">
  <xs:element name="root" vc:minVersion="1.1">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="node">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="type" type="xs:string" />
              <xs:element name="info" type="xs:string" />
              <xs:element minOccurs="0" name="detail">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="name" type="xs:string" />
                    <xs:element name="address" type="xs:string" />
                  </xs:sequence>
                  <xs:assert test="((type = ''B'') and detail) or (type=''A'')" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>';

begin
        dbms_xmlschema.registerSchema('procesos/gsioper/solicitudes/solicitud5.xsd', doc);
end;

我想在标签类型='B'时实现一个XSD模式,必须像这样注册标签详细信息:

<root>
    <node>
        <type>A</type>
        <info>info</info>
    </node>
    <node>
        <type>A</type>
        <info>info</info>
    </node>
    <node>
        <type>B</type>
        <info>info</info>
        <detail>
            <name>john</name>
            <address>downtown</address>
        </detail>
    </node>
</root>

提前感谢

共有1个答案

凌昕
2023-03-14

Oracle不支持XSD 1.1,XSD 1.1是xs:assert所必需的。

您必须删除xs:assert并放弃(或找到一个非基于XSD的替代方法)强制其约束。

 类似资料:
  • 我做了一些研究,有一个建议可以使用双重 但是现在我得到了ORA-06502/ORA-06512错误: ORA-06502:PL/SQL:erreur numérique ou erreur sur une valeur ORA-06512:àsys.xmltype“,ligne 272 ORA-06512:àligne 1 06502。00000-“PL/SQL:数值或值错误%s” *原因:出现算

  • 问题内容: 1.在将row_val变量char值’Good’更新到表中时,得到无效的标识符错误2.在插入数字时,它工作正常,但字符串却出现错误3。 错误 ORA-00904:“良好”:标识符无效ORA-06512:在第43行ORA-06512:在“ SYS.DBMS_SQL”在第1721行 我想将此’good,son,r ,, happy’字符串中的每个单词插入一行中的单独列中 问题答案: 字符串

  • 我正在使用以下xml架构验证一些xml文件: 我只是想引入一些assert标记,以便进行更强大的验证。但这导致了例外情况: 系统Xml。模式。XmlSchemaException:http://www.w3.org/2001/XMLSchema:assert-元素在此上下文中不受支持。 我现在不知道的是。。。 我在xsd中错误的地方使用了asstrt-元素 http://www.w3.org/20

  • 而我不断收到消息“断言错误”。我不知道为什么。如果我将更改为它工作得很好,那么为什么它不能与getPageSource一起工作呢?

  • ODI-1228:Task START_JC(过程)在目标ORACLE连接OJC上失败。 由:java.sql.sqlexception:ORA-06502:PL/SQL:numeric or value错误:NULL索引表键值 ORA-06512:at“OJC.JC_master”,第129行 ORA-06512:at“OJC.JC_master”,第689行 ORA-06512:at“OJC.

  • 知道我该怎么解决吗?