JAXB入门

时间:2013-05-14 20:46:38

标签: java xml jaxb

架构根

<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绑定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模式但是这个?如果不触发架构,它会怎么做? 此外,命名空间位置对。在XML文档中,它将指向物理位置。在这里,它是否必须指向物理位置?

问题3:
单词绑定。在我的脑海中,我理解您可以在移动或计算机应用中更改为settings。它们具有您可以更改的默认值。在上面的绑定文档中,他们更改了包设置。现在,假设我不想将文件保存在任何包装中,我应该保留原样吗? 我不需要编写那个绑定的XML文档?

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

1 个答案:

答案 0 :(得分:1)

  

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

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


  

问题2 - 这个属性,在模式中......在模式中

由于XML模式是一个XML文档,我想这样做是可以的,但我自己从未在XML模式中这样做过。


  

问题3 - 绑定一词。

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


  

问题4 - 在JAXB绑定文档中schemaLocation =“address.xsd”   指向架构位置。

我不相信绑定文件中需要schemaLocation


由于您刚刚开始使用JAXB,因此您可能不希望挂起绑定文档。只有在需要自定义从XML模式生成的类时才需要它。以下是不需要的示例:

我发现更有趣的用例是从对象中盯着看。以下是您可能会觉得有用的示例:

相关问题