2010-03-16 9 views
15

मैं कुछ परीक्षण कर रहा हूं, लेकिन जब मैं सामान्यीकृत() विधि का उपयोग करता हूं या नहीं, तो मुझे कोई फर्क नहीं पड़ता। लेकिन उदाहरण डीपोट वेबसाइट पर उदाहरण इसका उपयोग करते हैं। तो, इसके लिए क्या है? (दस्तावेज मेरे लिए स्पष्ट नहीं था)जावा नोड सामान्य विधि क्या करता है?

उत्तर

21

आप प्रोग्रामेटिक रूप से एक डोम पेड़ बना सकते हैं जिसमें बाहरी संरचनाएं वास्तविक XML संरचनाओं के अनुरूप नहीं हैं - विशेष रूप से चीजें जैसे कि एक दूसरे के बगल में टाइप टेक्स्ट के एकाधिक नोड्स, या खाली नोड्स पाठ टाइप करे। normalize() विधि इन्हें हटा देती है, यानी यह आसन्न पाठ नोड्स को जोड़ती है और खाली को हटा देती है। आप अन्य कोड है कि उम्मीद है डोम पेड़ हमेशा एक वास्तविक XML दस्तावेज़ से बनाया गया कुछ की तरह लग रहे करने के लिए है जब

यह उपयोगी हो सकता।

यह मूलतः इसका मतलब है कि निम्नलिखित XML तत्व

<foo>hello 
wor 
ld</foo> 

एक denormalized नोड में इस तरह निरूपित किया जा सकता:

Element foo 
    Text node: "" 
    Text node: "Hello " 
    Text node: "wor" 
    Text node: "ld" 

जब सामान्यीकृत, नोड इस

Element foo 
    Text node: "Hello world" 
की तरह दिखाई देगा
3

यह आसन्न पाठ नोड्स और खाली टेक्स्ट नोड्स से कोड साफ़ करता है

0

XML दस्तावेज़ के मूल तत्व को सामान्यीकृत करें। यह सुनिश्चित करता है कि रूट नोड के नीचे सभी टेक्स्ट नोड्स को "सामान्य" रूप में रखा जाता है, जिसका अर्थ यह है कि दस्तावेज़ में न तो निकट नोड टेक्स्ट नोड्स और न ही खाली टेक्स्ट नोड्स हैं।

2

संभव डोम पेड़ है कि एक ही XML संरचना के अनुरूप है और प्रत्येक XML संरचना कम से कम एक इसी डोम पेड़ है की एक बहुत कुछ कर रहे हैं। तो डीओएम से एक्सएमएल में रूपांतरण surjective है। तो यह है कि हो सकता है:

dom_tree_1 != dom_tree_2 
# but: 
dom_tree_1.save_DOM_as_XML() == dom_tree_2.save_DOM_as_XML() 

और वहाँ सुनिश्चित करने के लिए कोई रास्ता नहीं है:

dom_tree == dom_tree.save_DOM_as_XML().load_DOM_from_XML() 

लेकिन हम यह bijective करना चाहते हैं। इसका मतलब है कि प्रत्येक एक्सएमएल संरचना एक विशेष डोम पेड़ से मेल खाती है।

तो तुम हर संभव डोम पेड़ कि सभी संभव एक्सएमएल संरचनाओं के सेट करने के लिए द्विभाजित है के एक सबसेट परिभाषित कर सकते हैं।

# still: 
dom_tree.save_DOM_as_XML() == dom_tree.normalized().save_DOM_as_XML() 
# but with: 
dom_tree_n = dom_tree.normalize() 
# we now even have: 
dom_tree_n == dom_tree_n.save_DOM_as_XML().load_DOM_from_XML().normalize() 

तो सामान्यीकृत डीओएम पेड़ को उनके एक्सएमएल प्रतिनिधित्व से पूरी तरह से पुनर्निर्मित किया जा सकता है। कोई जानकारी हानि नहीं है।

संबंधित मुद्दे