Tôi biết nó là một bài cũ, nhưng, như không có câu trả lời cho câu hỏi chính xác, đây là đề nghị của tôi:
Như mmoossen giải thích, thủ đoạn này là để xác định không gian tên khác nhau cho các XSD. Nhưng, thêm một thuộc tính namespace
trong thẻ jxb:bindings
không hoạt động:
<jxb:bindings namespace="http://www.openapplications.org/oagis/9/unqualifieddatatypes/1.1" schemaLocation="oagi/Common/UNCEFACT/ATG/CoreComponents/UnqualifiedDataTypes.xsd" >
Thay vì đó, bạn cần phải thêm một thuộc tính targetNamespace
đến xs:schema
thẻ của XSD của bạn:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified"
targetNamespace="some.namespace"
version="1.0">
Sau khi hoàn tất, bạn sẽ có thể có 1 tệp tuỳ chỉnh bên ngoài (.xjb) tuyên bố khác nhau schemaBindings
, mỗi người trong số họ có thể sử dụng một gói phần mềm khác nhau:
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="2.1"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
jaxb:extensionBindingPrefixes="xjc annox inherit">
<jaxb:bindings schemaLocation="MyFirstXSD.xsd">
<jaxb:schemaBindings>
<jaxb:package name="com.test.a" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="MySecondXSD.xsd">
<jaxb:schemaBindings>
<jaxb:package name="com.test.b" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="MyThirdXSD.xsd">
<jaxb:schemaBindings>
<jaxb:package name="com.test.c" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
Vui lòng thêm một tập tin bắt buộc ví dụ cho câu hỏi của bạn – skaffman