gpt4 book ai didi

java - 在 Oracle PL/SQL 中使用 xmltype 从 XML 生成 XSD 文件

转载 作者:行者123 更新时间:2023-11-30 07:11:39 25 4
gpt4 key购买 nike

我想要的结果是直接在 oracle 中从 XML 生成 XSD 文件

我在 PL/SQL 过程中使用 SQL 查询从表生成 XMLType。

使用该 XMLtype,然后我执行 .GetClobVal() 并返回我当前复制到以下在线工具中的 clob 版本 http://www.freeformatter.com/xsd-generator.html然后我能够从中生成 XSD。

我知道这个 XSD 并不完美,也不会完全达到我想要的效果,但它已经非常接近了。

我想知道是否有人知道Oracle中有一个可以做到这一点的工具,我只能找到generating XSD from an Oracle type ,但在这种情况下我不使用 Oracle 类型,因此请不要建议使用它

这是我用来创建 xml 的代码示例

With  Accounts As  (  Select  XMLAgg(
XMLElement("AccountDetail",
XMLForest(1234 || Level As "UID",
'Test' || Level As "Name"))) As xmlData,
Count(*) as dataCount
From Dual
Connect By Level <= 2
)
Select XMLElement("GetAccountDataResponse",
XMLElement("ResponseInfo",
XMLElement("Code", 'Success'),
XMLElement("Message", 'Normal Successful Completion'),
XMLElement("DebugInfo",
XMLElement("DBVersion", 'V01.01.00'))),
Accounts.xmlData
).GetClobVal()
From Accounts;

这是 XML 示例:

<GetAccountDataResponse>
<ResponseInfo>
<Code>Success</Code>
<Message>Normal Successful Completion</Message>
<DebugInfo>
<DBVersion>V01.01.00</DBVersion>
</DebugInfo>
</ResponseInfo>
<AccountDetail>
<UID>12341</UID>
<Name>Test1</Name>
</AccountDetail>
<AccountDetail>
<UID>12342</UID>
<Name>Test2</Name>
</AccountDetail>
</GetAccountDataResponse>

当您将代码复制到我之前提到的 xsd-generator 时,您会得到以下输出:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="GetAccountDataResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="ResponseInfo">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Code"/>
<xs:element type="xs:string" name="Message"/>
<xs:element name="DebugInfo">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="DBVersion"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AccountDetail" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:short" name="UID"/>
<xs:element type="xs:string" name="Name"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

这非常接近,并且允许我在 PL/SQL 等中将 type="xs:short"替换为 type="xs:int"以获得我想要的输出。

如果有一个 JAVA 程序可以做到这一点,我也会很高兴,因为 Oracle 本身支持运行 JAVA

最佳答案

没有可以从 XML 生成 XSD 的 Oracle 工具。

您可以尝试这个 Apache XMLBeans inst2xsd 工具:http://xmlbeans.apache.org/docs/2.0.0/guide/tools.html#inst2xsd

关于java - 在 Oracle PL/SQL 中使用 xmltype 从 XML 生成 XSD 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com