【问题标题】:Read XSD file in Java用 Java 读取 XSD 文件
【发布时间】:2012-04-30 03:53:41
【问题描述】:

我有一个工作流 Web 服务,其中包含多个作为服务方法公开的活动。这些服务方法具有各种参数。在 Java 中,我需要知道这些参数是什么。

所以我想有一个 XSD 架构,我应该能够从中获取我想知道的信息。有没有办法从 Java 中的 XSD 文件中读取元素?我的 XSD 基本上是这样的:

<xs:element name='servicemethod'>
    <xs:complexType>
        <xs:sequence><xs:element name='parameterIWantToKnow'/></xs:sequence>
   </xs:complexType>
</xs:element>

在 Java 中,我确实知道“servicemethod”,但我想知道嵌套在这个 servicemethod 元素中的元素名称。

或者是否有类似将 XML 解析为 JSON 的东西,因为我之前在 Java 中使用 JSON 做过类似的事情。

非常感谢任何帮助!

【问题讨论】:

    标签: java xml web-services xsd schema


    【解决方案1】:

    谢谢迈克尔。

    也许我的问题有点令人困惑。但更明确地说:我有一个工作流,在 IIS 中作为服务托管。我所有的工作流程检索活动都公开为 Web 服务操作。但是所有这些操作都有参数,现在在 Java 中我想知道这些参数是什么。所以我想,通过阅读 XSD 文件,我可以检索这些名称吗?因为我的XSD是这样的:

    <xs:element name='servicemethod'>
        <xs:complexType>
            <xs:sequence><xs:element name='parameterIWantToKnow'/></xs:sequence>
        </xs:complexType>
    </xs:element>.
    

    我知道 Java 中的 servicemethod 名称,现在我想知道嵌套在这个 servicemethod 元素中的元素名称。顺便说一句,我的 XSD 只能通过 URL 获得,而不是作为我电脑上的文件。

    顺便说一句,我既不是 Java 专家也不是 XML 专家,很抱歉问了一些对你来说可能没有意义的问题..

    【讨论】:

    • 顺便说一句,XSD 只能通过 URL 访问应该没问题,我刚刚意识到一个简单的 get 请求就足以获取文档的内容..
    【解决方案2】:

    这取决于你想对数据做什么(“消费”它不是很明确......)。 XML Schema 是作为一组 XML 文档编写的,为了理解它,您通常需要该集合中的所有文档。要使用模式中的信息来回答合理的问题,例如“一个段落元素是否可以包含另一个段落元素?”,您将真的希望从已编译的模式(所谓的模式组件模型)而不是原始 XML 中工作.有一个用于执行此操作的 Xerces API,称为 XSOM,或者 Saxon-EE 产品有一个工具可以生成模式组件模型的 XML 表示,可以使用 XPath 或 XQuery 进行处理。

    【讨论】:

    • 我的回答是很想发表评论,所以请在帖子中查看我的回答。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2011-01-22
    • 2011-07-09
    • 2022-01-17
    • 2012-10-17
    • 1970-01-01
    相关资源
    最近更新 更多