1

問題があります。XML で検証しようとしている XSD ファイルがあります。

XSD は次で始まります。

<xs:schema id="Notes"
targetNamespace="http://mynotes.com/Notes"
elementFormDefault="qualified"
xmlns="http://mynotes.com/Notes"
xmlns:mstns="http://mynotes.com/Notes"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

次に、次の XML があります。

<?xml version="1.0" encoding="utf-8"?>
<notes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="noNamespaceSchemaLocation" xmlns="http://mynotes.com/Notes">

その場合は検証できますが、JAXB を使用してオブジェクトを作成すると、オブジェクトに値が入力されず、すべてのメンバーが null になります。

ただし、XML を次のように変更すると:

<?xml version="1.0" encoding="utf-8"?>
<notes>...

この場合、JAXB オブジェクトは正常に作成されますが、検証は失敗します...

名前空間の宣言に何か欠けていると思います。ご協力をお願いします。

ありがとう。

4

1 に答える 1

0

パッケージ レベルの@XmlSchemaアノテーションを使用して、JAXB モデルのデフォルトの名前空間修飾を指定できます。以下は例です。パッケージをドメイン クラスと同じになるように調整する必要があります。

com/example/package-info.java

@XmlSchema(
    namespace = "http://mynotes.com/Notes",
    elementFormDefault = XmlNsForm.QUALIFIED)
package com.example;

import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;

詳細については

于 2012-09-27T14:38:35.890 に答える