簡體   English   中英

綁定和取消綁定擴展JibX自動生成的類的類

[英]Binding and Unbinding of a class that extends a JibX auto-generated class

我有一個稱為ObjectClass的類,它由JibX從.xsd文件自動生成。 為了防止類名出現問題,該類已降級為自己的軟件包,例如

com.CompanyName.ProductName.SDK.Device.GetCommandsResponse.ObjectClass

此類按預期方式進行綁定和解除綁定。

我想創建一個擴展上述類的空類,我想知道新類是否可以使用原始ObjectClass綁定正確地進行綁定和取消綁定? 還是我必須嘗試為此新擴展建立唯一的綁定?

新類看起來與此類似

public class deviceGetCommandsResponse extends 
com.CompanyName.ProductName.SDK.Device.GetCommandsResponse.ObjectClass
{
   /// This is empty
}

這樣做的目的是通過提供唯一的名稱,使第三方開發人員更容易/更少麻煩地鑄造這些對象。

所以代替

(com.CompanyName.ProductName.SDK.Device.GetCommandsResponse.ObjectClass) SomeReturnFromAMethod

他們可以使用

(deviceGetCommandsResponse) SomeReturnFromAMethod;

並具有相同的功能。

從廣義上講,我將如何為JibX生成的類制作適配器模式?

您的問題的答案是肯定的,JiBX在擴展類中可以正常工作。

在執行此操作之前,我將考慮以下選項:

首先,默認包名稱是名稱空間URL位置,默認類名稱是頂級元素,對於大多數綁定而言,這是一個很好的選擇。

例如,如果我的架構定義是:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.jibx.org/sampleschema/person" elementFormDefault="qualified" targetNamespace="http://www.jibx.org/sampleschema/person">
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstName" type="xs:string"/>
<xs:element name="lastName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

生成的類為:

package org.jibx.sampleschema.person;
public class Person
{
    private String firstName;
    private String lastName;
    ...

您的代碼將顯示為:

Person person = new Person();
person.setFirstName("Don");

這很合邏輯而且很干凈。 具有全局唯一的類名非常有用,尤其是在使用公共模式定義的情況下。 將綁定發布為開放源代碼將為其他使用相同架構的用戶節省一些時間。

如果默認值是不可接受的,則通過設置JiBX配置,更改包和/或類名非常容易。

我希望這有幫助!

唐·科利
JiBX貢獻者

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM