<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" >
<?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文件怎么办?
答案 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模式生成的类时才需要它。以下是不需要的示例:
我发现更有趣的用例是从对象中盯着看。以下是您可能会觉得有用的示例: