JAVA での REST Web サービス開発で問題に直面しています。
問題: Web サービスが SQL サーバー データベースからデータをフェッチします。いくつかのフィールドが含まれています。1 つの XML タグを含む 1 つのフィールドがあります。そのため、すべてのデータベース フィールドを含む XML ファイルを作成し、それに XML タグを追加する必要があります。
ここでは、データベースからデータを取得して XML ファイルを作成できましたが、デフォルトの XML タグ名を削除できませんでした。
デフォルトの XML タグ名を削除するにはどうすればよいですか? @XMLElement オプションを試しましたが、成功しません。助けてください!
現在の出力:
<CardProfile>
<cardID="1">
<accountType>1</accountType>
.
.
.
</card>
<ProfileXML><Profile ID="1"><Signature>adfalfjalj/Signature></Profile></ProfileXML>
</CardProfile>
望ましい出力:
<CardProfile>
<card cardID="1">
<accountType>1</accountType>
.
.
.
</card>
<Profile ID="1"><Signature>adfalfjalj/Signature></Profile>
</CardProfile>
Card.java
package pinpad.repositoryservice;
import javax.xml.bind.annotation.*;
public class Card {
private int CardID;
private String CardHolderName;
private String Track1Data;
private String Track2Data;
private String Track3Data;
private String PANNumber;
private String ExpiryDate;
private String CVV;
private String Address;
private String ZipCode;
private String DriverID;
private String AccountTypeCreditDebit;
@XmlAttribute (name = "ID")
public int getCardID() {
return CardID;
}
public void setCardID(int id) {
this.CardID = id;
}
@XmlElement
public String getCardHolderName() {
return CardHolderName;
}
public void setCardHolderName(String CardHolderName) {
this.CardHolderName = CardHolderName;
}
@XmlElement
public String getTrack1Data() {
return Track1Data;
}
public void setTrack1Data(String Track1Data) {
this.Track1Data = Track1Data;
}
@XmlElement
public String getTrack2Data() {
return Track2Data;
}
public void setTrack2Data(String Track2Data) {
this.Track2Data = Track2Data;
}
@XmlElement
public String getTrack3Data() {
return Track3Data;
}
public void setTrack3Data(String Track3Data) {
this.Track3Data = Track3Data;
}
@XmlElement
public String getPANNumber() {
return PANNumber;
}
public void setPANNumber(String PANNumber) {
this.PANNumber = PANNumber;
}
@XmlElement
public String getExpiryDate() {
return ExpiryDate;
}
public void setExpiryDate(String ExpiryDate) {
this.ExpiryDate = ExpiryDate;
}
@XmlElement
public String getCVV() {
return CVV;
}
public void setCVV(String CVV) {
this.CVV = CVV;
}
@XmlElement
public String getAddress() {
return Address;
}
public void setAddress(String Address) {
this.Address = Address;
}
@XmlElement
public String getZipCode() {
return ZipCode;
}
public void setZipCode(String ZipCode) {
this.ZipCode = ZipCode;
}
@XmlElement
public String getDriverID() {
return DriverID;
}
public void setDriverID(String DriverID) {
this.DriverID = DriverID;
}
@XmlElement
public String getAccountTypeCreditDebit() {
return AccountTypeCreditDebit;
}
public void setAccountTypeCreditDebit(String AccountTypeCreditDebit) {
this.AccountTypeCreditDebit = AccountTypeCreditDebit;
}
}
CardProfile.java
package pinpad.repositoryservice;
import javax.xml.bind.annotation.*;
@XmlRootElement(name = "CardProfile")
@XmlAccessorType(XmlAccessType.FIELD)
public class CardProfile {
@XmlElement (name = "Card")
public Card cards = new Card();
public String ProfileXML;
/**
* @return the cards
*/
public Card getCards() {
return cards;
}
/**
* @param cards the cards to set
*/
public void setCards(Card cards) {
this.cards = cards;
}
/**
* @return the profileXML
*/
public String getProfileXML() {
return ProfileXML;
}
/**
* @param profileXML the profileXML to set
*/
public void setProfileXML(String profileXML) {
ProfileXML = profileXML;
}
}
CardProfileRepositoryService.java
package pinpad.repositoryservice;
import javax.ws.rs.*;
/*
* Holds Card and Profiles and exposes REST interface to answer a profile and card data
* based on profile ID and card ID
*/
@Path("/cardprofile")
public class CardProfileRepositoryService {
CardProfile cardprofiles = new CardProfile();
@GET
@Path("/query/")
@Produces("application/xml")
public CardProfile getCardProfile(
@QueryParam("cardid") int CardID,
@QueryParam("profileid") int ProfileID) {
DatabaseManager databaseManager = new DatabaseManager();
databaseManager.getConfigProperties();
databaseManager.getDataBaseConnection();
cardprofiles = databaseManager.executeSprocGetCardProfile(CardID, ProfileID);
databaseManager.closeDataBaseConnection();
return cardprofiles;
}
}
タグ値は完全にデータベースから取得されます。だから私はタグ名を削除したいので、値だけになります.. .