phần XSD này được lấy từ: http://www.iana.org/assignments/xml-registry/schema/netconf.xsdXSD Formatting <element><complexType> vs <complexType /><element/>
<xs:complexType name="rpcType">
<xs:sequence>
<xs:element ref="rpcOperation"/>
</xs:sequence>
<xs:attribute name="message-id" type="messageIdType" use="required"/>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
<xs:element name="rpc" type="rpcType"/>
Và là cốt lõi để hoạt cuộc gọi trong NETCONF là nút của một tài liệu XML. Tôi tò mò là tại sao nó không phải là một cái gì đó như:
<xs:element name="rpcType">
<xs:complexType>
<xs:sequence>
<xs:element ref="rpcOperation"/>
</xs:sequence>
<xs:attribute name="message-id" type="messageIdType" use="required"/>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
</xs:element>
Lý do là trong # 1 khi cố gắng marshall một bean (trong jaxb2) tôi nhận được ngoại lệ:
[com.sun.istack.SAXException2: unable to marshal type "netconf.RpcType" as an element because it is missing an @XmlRootElement annotation]
Tôi có đã đọc được this bài viết hết lần này đến lần khác, và thực sự không thể giữ được sự khác biệt, và tại sao nó lại là số 1 và số 2 ...
Nếu khi sử dụng 'chế độ ràng buộc đơn giản', xsd được mở rộng hoặc kết hợp và một phần tử gốc khác được định nghĩa cùng loại (trong phần mở rộng) sẽ có lỗi thời gian biên dịch XJC hoặc lỗi thời gian chạy hoặc hành vi không xác định ? – Vihung