"சரி, அப்படியானால், நீங்கள் ஏற்கனவே யூகித்தபடி, அது எல்லாம் இல்லை."
"இப்போது நான் உங்களுக்கு JAXB இன் பல அம்சங்களைப் பற்றி சொல்கிறேன். ஆனால் நாங்கள் JSON உடன் செய்தது போல், நாங்கள் சேகரிப்பில் தொடங்குவோம்."
"JAXB ஐப் பயன்படுத்தி சேகரிப்புகளை சீரழிக்கும் போது, பட்டியல் மாறிக்கு எந்த குறிப்பிட்ட சேகரிப்பை (ArrayList, LinkedList, Vector, முதலியன) பயன்படுத்த வேண்டும் என்பதில் நிச்சயமற்ற நிலை உள்ளது. மேலும் இந்தக் கேள்விக்கான பதில் சிறுகுறிப்புகளால் வழங்கப்படுகிறது."
"இது எல்லாம் மிகவும் எளிமையானது. அதன் சிறுகுறிப்பில் சேகரிப்பு வகை குறிப்பிடப்படவில்லை என்றால், JAXB அதன் வகையைப் பயன்படுத்தி மிகவும் பொருத்தமான தொகுப்பைத் தேர்ந்தெடுக்க முயற்சிக்கும். ஒரு பட்டியலுக்கு, இது ArrayList ஆக இருக்கும்; ஒரு வரைபடத்திற்கு, இது HashMap போன்றவையாக இருக்கும். ."
"உண்மையில், JSON ஐ விட இங்கு மிகக் குறைவான சிக்கல்கள் உள்ளன, ஏனெனில் ஒவ்வொரு வகுப்பிற்கும் ஒரு தனித்துவமான குறிச்சொல் உள்ளது, மேலும் சரியான வகுப்பைக் குறிப்பிட நீங்கள் குறிச்சொல்லைப் பயன்படுத்தலாம்."
"உதாரணமாக, ஒரு பொதுவான மூதாதையரைப் பெற்றுள்ள தனிமங்களின் குழுவை நீங்கள் சீரழிக்க வேண்டும் என்றால், நீங்கள் @XmlAny: சிறுகுறிப்பைப் பயன்படுத்துகிறீர்கள்"
public static void main(String[] args) throws JAXBException
{
String xmldata = "<zoo><cat/><cat/><dog/><cat/></zoo>";
StringReader reader = new StringReader(xmldata);
JAXBContext context = JAXBContext.newInstance(Cat.class, Zoo.class, Dog.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Cat cat = (Cat) unmarshaller.unmarshal(reader);
}
@XmlType(name = "zoo") @XmlRootElement class Zoo { @XmlAny public List<Object> விலங்குகள்; } @XmlType(name = "cat") @XmlRootElement class Cat { public String name; பொது முழு வயது; பொது முழு எடை; பூனை() { } } @XmlType(name = "dog") @XmlRootElement class Dog { public String name; பொது முழு வயது; பொது முழு எடை; பூனை() { } }
"ஒரு சேகரிப்பு @XmlAny சிறுகுறிப்புடன் குறிக்கப்பட்டால் , அதில் ஏதேனும் பொருத்தமான பொருட்களை வைக்கலாம். மேலும் JAXB Unmarshaller, சேகரிப்பை நிரப்பும்போது குறிச்சொற்களுக்கு கவனம் செலுத்துகிறது."
"இந்த வழக்கில், " <zoo> <cat/><cat/> <dog/> <cat/> </zoo> " குறிச்சொற்களின் வரிசையானது பூனை, பூனை, நாய் மற்றும் பூனைப் பொருட்களுடன் ஒரு தொகுப்பாக மாற்றப்படும். ."
"அது நான் எதிர்பார்த்ததுதான்."
"உஹ்-ஹூ. ஓ, இன்னும் ஒரு விஷயம். உரை மற்றும் குறிச்சொற்களின் கலவையை நீக்கினால், @XmlMixed சிறுகுறிப்பைப் பயன்படுத்த வேண்டும் ."
"இந்த வகை எக்ஸ்எம்எல்லின் உதாரணம் இதோ:"
<data> <items> சோதனை 1 <item/> text 2 <item> பெயர் </item> text 3 </items> </data>
"ஆஹா. அப்படிப்பட்ட எக்ஸ்எம்எல் இருப்பதை நான் மறந்துவிட்டேன். உட்பொதிக்கப்பட்ட குறிச்சொற்கள் மற்றும் எல்லாவற்றிலும் அழகாக இருப்பதை நான் பழகிவிட்டேன்."
"அது உள்ளது. இந்த வழக்கில் கூட JAXB ஒரு சிறுகுறிப்பு உள்ளது!"
"அருமையானது. நான் கேட்க விரும்பினேன்: என்யூம்கள் எப்படித் தொடர்கின்றன?"
"நல்ல கேள்வி! நல்ல கேட்ச்! எப்படியோ அந்த தலைப்பைத் தவிர்த்துவிட்டேன்."
"என்யூம்களைக் குறிக்கப் பயன்படுத்த வேண்டிய சிறப்பு @XmlEnum சிறுகுறிப்பு உள்ளது. மதிப்புகள் எண்களாகவோ அல்லது சரங்களாகவோ சேமிக்கப்படுமா என்பதைக் குறிப்பிட நீங்கள் அதைப் பயன்படுத்தலாம்."
"ஒரு குறிப்பிட்ட enum புலத்துடன் தொடர்புடைய மதிப்பைக் குறிப்பிட அனுமதிக்கும் @XmlEnumValue சிறுகுறிப்பும் உள்ளது."
"இங்கே சில உதாரணங்கள்:"
எண்கள் | சரங்கள் |
---|---|
|
|
"ஹோலி மோலி. எனக்கு இது எங்கு தேவைப்படும் என்று என்னால் கற்பனை செய்து பார்க்க முடியவில்லை, ஆனால் இது மிகவும் பயனுள்ளதாக இருக்கும் என்று நினைக்கிறேன். மேலும் முக்கியமாக, நான் நிலையான சரம் அல்லது எண் மதிப்புகளுடன் ஒட்டிக்கொள்ள வேண்டியதில்லை."
"ஆம். இது மிகவும் எளிது, எடுத்துக்காட்டாக, நீங்கள் பேஸ்புக் சேவையகத்துடன் செய்திகளை பரிமாறிக்கொள்ளும் ஒரு நிரலை எழுதும்போது, அவர்களுக்கு ஒதுக்கப்பட்ட மதிப்புகள் உள்ளன. நீங்கள் அவற்றை அவர்களின் சொந்த எண்ணுக்கு ஒதுக்க வேண்டும், எல்லாம் வேலை செய்யும். "
"அற்புதம். எனக்கு கண்டிப்பாக JAXB பிடிக்கும்."
"அருமை. அப்புறம் இன்னைக்கு அவ்வளவுதான். போய் ஓய்வு எடு."
GO TO FULL VERSION