gpt4 book ai didi

java - JAXB 入门

转载 作者:行者123 更新时间:2023-11-30 11:32:38 24 4
gpt4 key购买 nike

架构根

<xs:schema jxb:version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/XMLSchema
http://www.nubean.com/schemas/schema.xsd" >
<xs:element name="UsOrCanadaAddress" >

JAXB 绑定(bind) XML

<?xml version='1.0' encoding='utf-8' ?>
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<jxb:bindings node="/xs:schema" schemaLocation="address.xsd" >
<jxb:schemaBindings>
<jxb:package name="com.apress.jaxb1.example" ></jxb:package>
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>

我从 JAXB 开始,这是我在书中遇到的两个标签。
关于这两个标签的各个部分,我有几个基本问​​题。他们开始了:

问题 1:

xmlns:jxb="http://java.sun.com/xml/ns/jaxb"  

此属性是否必须具有完全相同的值?

问题 2:

xsi:schemaLocation="http://www.w3.org/2001/XMLSchema
http://www.nubean.com/schemas/schema.xsd"

这个属性,在模式中..在模式中???我的意思是,我可以理解 XML 文档中指向 XML 模式的属性,但是这个?如果不触发模式感知,它会做什么?
此外, namespace 位置对。在 XML 文档中,它将指向一个物理位置。在这里,它必须指向一个物理位置吗?

问题 3:
绑定(bind)这个词。在我的脑海中,我明白作为设置,您可以在移动或计算机应用程序中进行更改。它们具有您可以更改的默认值。在上面的绑定(bind)文档中,他们更改了包设置。现在,假设我不想将文档保存在任何包中,我应该保持原样吗?
我将不需要编写那个绑定(bind) XML 文档吗?

问题 4:
在 JAXB 绑定(bind)文档中,schemaLocation="address.xsd" 指向架构位置。现在这是物理位置。如果我的架构包含一个 JAR 文件怎么办?

最佳答案

Question 1 - Does this attribute has to have the exact same value ?

A JAXB (JSR-222)实现期望绑定(bind)文件中的元素使用 "http://java.sun.com/xml/ns/jaxb" 命名空间进行限定。它不依赖于所使用的特定前缀。


Question 2 - This attribute, in the schema.. in the schema ???

因为 XML 模式是一个 XML 文档,我想这样做是可以的,但我自己从来没有在 XML 模式中这样做过。


Question 3 - The word binding.

我对“绑定(bind)”这个词有一种爱恨交织的关系。它已经与将对象与不一定持久的数据格式(即 XML、JSON 等)相互转换相关联。


Question 4 - In the JAXB binding document schemaLocation="address.xsd" points to the schema location.

我认为绑定(bind)文件中不需要 schemaLocation


由于您刚刚开始使用 JAXB,您可能不希望被绑定(bind)文档挂断。只有当您需要自定义从 XML 模式生成的类时才需要它。下面是一个不需要它的例子:

我发现更有趣的用例是从对象开始凝视。以下是您可能会觉得有用的示例:

关于java - JAXB 入门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16552524/

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