Questa porzione XSD stato ottenuto da: http://www.iana.org/assignments/xml-registry/schema/netconf.xsdXSD formattazione <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"/>
E è il nucleo funzionamento chiamate in NETCONF essere il nodo di un documento XML. Sono curioso di sapere perché non è qualcosa di simile:
<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>
Il ragionamento è che a # 1 quando si cerca di marshall un fagiolo (in jaxb2) ottengo l'eccezione:
[com.sun.istack.SAXException2: unable to marshal type "netconf.RpcType" as an element because it is missing an @XmlRootElement annotation]
ho ho letto più volte l'articolo this e non riesco a capire la differenza, e perché sarebbe il numero 1 vs il numero 2 ...
Se quando si utilizza la 'modalità di associazione semplice', xsd viene esteso o combinato e un altro elemento radice viene definito con lo stesso tipo (nell'estensione) ci sarà un errore di compilazione XJC, o un errore di runtime o comportamento indeterminato ? – Vihung