Àí½âXercesJava½âÎöÆ÷£ºXMLÊÀ½çµÄ¼áÊµÊØ»¤Õß
ÔÚÏÖ´úÈí¼þ¿ª·¢ÖУ¬Êý¾ÝµÄ³ß¶È»¯¡¢½á¹¹»¯ÒÔ¼°ÑéÖ¤±äµÃÓÈÎªÖØÒª£¬¶øXML×÷ΪһÖÖÁé»î¶øÇ¿´óµÄÊý¾Ý½»Á÷»¨Ñù£¬±»¹ã·ºÓ¦ÓÃÓÚÖÖÖÖÐÐÒµ¡£ÎÞÂÛÊÇÅäÖÃÎļþ¡¢Í¨ÐÅÐÒéÕÕ¾ÉÅÓ´óµÄÊý¾Ý´æ´¢£¬XML¶¼Õ¹ÏÖ³öÁ˲»ÐÐÌæ´úµÄ¼ÛÖµ¡£¶øÔÚJavaÉú̬ÖУ¬ÓÐÒ»¿î¿ªÔ´µÄXML½âÎöÆ÷¡ª¡ªXercesJava£¬³ÉΪ¿ª·¢Õß½â¾öXMLÏà¹ØÎÊÌâµÄµÃÁ¦ÖúÊÖ¡£
XercesJava×î³õÓÉApacheÈí¼þ»ù½ð»á¿ª·¢£¬ÊÇApacheXercesÏîÄ¿µÄJava°æ±¾ÊµÏÖ¡£ËüÌṩÁËÍêÕûµÄXML½âÎöÄÜÁ¦£¬²»½öÖ§³ÖW3C³ß¶È£¬»¹¼æÈݶàÖÖXMLÑéÖ¤»úÖÆ£¬Ê¹µÃ¿ª·¢Õß¿ÉÒÔ¸ßЧ¡¢Äþ¾²µØ¶ÁÈ¡¡¢ÑéÖ¤ºÍ²Ù×÷XMLÊý¾Ý¡£Ïà±ÈÆäËû½âÎöÆ÷£¬XercesµÄ×î´óÁÁµãÔÚÓÚÆä¸»ºñµÄ¹¦Ð§¼¯¡¢ÓÅÒìµÄÐÔÄÜÌåÏÖÒÔ¼°»îÔ¾µÄÉçÇøÖ§³Ö¡£
¿É¿¿µÄ³ß¶ÈÇкÏÐÔ¡£XercesÑϸñ×ñÑW3CµÄXML³ß¶È£¬Ö§³ÖDOM¡¢SAX¼°StAXµÈ¶àÖÖ½âÎöÄ£ÐÍ£¬Îª¿ª·¢ÕßÌṩÁé»îµÄÑ¡Ôñ¿Õ¼ä¡£ÎÞÂÛÊÇÐèÒªÄÚ´æÓѺõÄSAXÁ÷ʽ½âÎö£¬ÕվɶÔXML½á¹¹½øÐÐÅÓ´ó²Ù×÷µÄDOMÄ£ÐÍ£¬Xerces¶¼ÄÜʤÈΡ£
ÑéÖ¤»úÖÆÇ¿´ó¡£XercesÖ§³ÖDTD¡¢XMLSchema£¨XSD£©¡¢RELAXNGµÈ¶àÖÖÑéÖ¤ÒªÁì¡£ÕâÒâζ×ÅÄã¿ÉÒÔÔÚ½âÎö¼òÖ±±£XMLÊý¾ÝµÄÕýµ±ÐÔÓëÍêÕûÐÔ£¬ÎªÆóÒµ¼¶Ó¦ÓÃÌṩ¼áʵ»ù´¡¡£
ÔÙÕߣ¬Ò×ÓÃÐÔÓëÀ©Õ¹ÐÔ¡£XercesÉè¼Æ¿¼Á¿ÁË¿ª·¢ÕßµÄʵ¼ÊÐèÇó£¬API½Ó¿ÚÇåÎú£¬ÎĵµÏ꾡£¬×ÝÈ»ÊÇXMLÐÂÊÖÒ²ÄÜ¿ìËÙÉÏÊÖ¡£ËüÖ§³Ö×Ô½ç˵´íÎó´¦Öóͷ£¡¢ÊµÌå½âÎöµÈ¸ß¼¶¹¦Ð§£¬¿Éƾ¾Ýʵ¼Ê³¡¾°½øÐÐÀ©Õ¹¡£
³ÉÊìµÄÉçÇøÓëÁ¬ÐøµÄά»¤¡£×÷ΪApache»ù½ð»áµÄ¶¥¼¶ÏîÄ¿£¬XercesÓµÓÐÅÓ´óµÄÓû§ÈºÌåºÍ¸»ºñµÄʵ¼ù¾Ñ飬Óöµ½ÎÊÌâ¿ÉÒÔͨ¹ýÉçÇø»ñµÃ×ÊÖú¡£ÏîÄ¿Á¬Ðø¸üУ¬²»Í£ÓÅ»¯ÐÔÄܺͼæÈÝÐÔ£¬È·±£ÔÚ¿ìËٱ仯µÄ¼¼ÊõÇé¿öÖб£³Ö¾ºÕùÁ¦¡£
XercesJava½âÎöÆ÷½¹µãÓɶà¸öÄ£¿é×é³É£¬º¸Ç½âÎö¡¢ÑéÖ¤¡¢´¦Öóͷ£µÈ»·½Ú¡£Æä¼Ü¹¹Éè¼Æ¾«Á¼£¬½«ÅÓ´óµÄXML´¦Öóͷ£Á÷³Ì²ð·ÖµÃ¾®È»ÓÐÐò¡£
½âÎöÄ£ÐÍ£ºÖ§³ÖDOM¡¢SAX¡¢StAX£¬Îª²îÒìÐèÇóÌṩרÊô½â¾ö·½°¸¡£DOMÊʺϲÙ×÷ÅÓ´óXML½á¹¹£¬SAXÊʺϿìËÙ¡¢µÍÄÚ´æµÄÁ÷ʽ½âÎö£¬StAX½áºÏÁËÁ½ÕßÓÅÊÆ¡£ÑéÖ¤»úÖÆ£º¼¯³ÉDTD¡¢Schema¡¢RELAXNGµÈÑéÖ¤·½°¸£¬È·±£XMLÊý¾ÝµÄÕýµ±ÐÔ¡£
´íÎó´¦Öóͷ££ºÌṩǿ´óµÄ´íÎó³ÂËßÓë´¦Öóͷ£»úÖÆ£¬±ãÓÚµ÷ÊÔÓëÈÝ´í¡£´¦Öóͷ£À©Õ¹£ºÖ§³Ö×Ô½ç˵ʵÌå½âÎö¡¢Íⲿ×ÊÔ´¼ÓÔØµÈ¸ß¼¶¹¦Ð§£¬Âú×ãÆóÒµ¼¶¶¨ÖÆÐèÇó¡£
ʵ¼ÊʹÓÃÖУ¬XercesµÄÅäÖüòÆÓ£¬Í¨¹ýÉèÖýâÎö¹¤³§£¨ParserFactory£©¼°Ïà¹Ø²ÎÊý£¬¾Í¿ÉÒÔ¿ìËٴXML´¦Öóͷ£Á÷³Ì¡£¸»ºñµÄAPIºÍʾÀý´úÂ룬Èÿª·¢ÕßÎÞÐè¹ý¶à·±ËöÅäÖ㬾ÍÄÜʵÏÖÅÓ´óµÄXMLÑéÖ¤ºÍÊý¾Ý²Ù×÷¡£
ÒÔÆóÒµµç×ÓÉÌÎñƽ̨ΪÀý£¬Îª¶©µ¥ÐÅÏ¢ÉèÖÃXMLÄ£°å£¬È·±£Ã¿Ò»±Ê¶©µ¥¶¼Çкϳ߶ȡ£ÀûÓÃXerces£¬¿ª·¢Õß¿ÉÒÔÔÚ¶©µ¥Ìá½»µÄͬʱ½øÐл¨ÑùÑéÖ¤£¬²¢½«XML´æÈëÊý¾Ý¿â»òÏûÏ¢ÐÐÁÐÖС£
ÓÖÈç½ðÈÚÐÐÒµÖеÄÊý¾Ý½»Á÷ÐÒ飬ҪÇ󼫸ߵÄÄþ¾²ÐÔÓë׼ȷÐÔ¡£XercesµÄÑéÖ¤»úÖÆ±£Ö¤ËùÓд«ÊäµÄXML¶¼ÇкϽç˵¹æ·¶£¬ÖÆÖ¹Ç±ÔÚµÄÄþ¾²Â©¶´£¬ÎªÒµÎñÁ÷³ÌÌṩ¼áʵ±£ÕÏ¡£
×Ü½á¶øÑÔ£¬XercesJava½âÎöÆ÷ƾ½èÆä³ß¶ÈÇкϡ¢Ç¿´óµÄÑéÖ¤ÄÜÁ¦ºÍÁé»îµÄ¼Ü¹¹Éè¼Æ£¬³ÉΪJava¿ª·¢Õß´¦Öóͷ£XMLÊý¾ÝµÄÊ×Ñ¡¹¤¾ß¡£ÎÞÂÛÊÇÔÚ¼òÆÓµÄÊý¾Ý¶ÁÈ¡£¬ÕÕ¾ÉÅÓ´óµÄXMLÑéÖ¤³¡¾°ÖУ¬Xerces¶¼ÄÜÖúÄãʰ빦±¶£¬¿ªÆô¸ßЧXML´¦Öóͷ£µÄÐÂʱ´ú¡£
ʵս¼¼ÇÉ£ºÓÃXercesJava½âÎöÆ÷´òÔì¸ßЧXML´¦Öóͷ£·½°¸
ÔÚÕÆÎÕÁËXercesJava½âÎöÆ÷µÄ»ù´¡ÖªÊ¶ºó£¬Êµ¼ÊÓ¦ÓÃÖÐÈçºÎ·¢»ÓÆä×î´óDZÄÜ£¿±¾ÎĽ«ÉîÈë½â˵¼¸ÖÖ³£Óõij¡¾°²Ù×÷¼¼ÇÉ¡¢ÓÅ»¯·½°¸£¬ÒÔ¼°ÊµÓõĿª·¢¾Ñ飬ÖúÄãÔÚÏîÄ¿ÖÐÓÎÈÐÓÐÓà¡£
´¦Öóͷ£º£Á¿Êý¾Ýʱ£¬ÖÆÖ¹ºÄ¾¡ÄÚ´æÓÈΪҪº¦¡£XercesÌṩÁ˶àÖÖ·½Ê½ÊµÏÖ¸ßЧ½âÎö¡£
½ÓÄÉSAX»òStAXÄ£ÐÍ£ºÕâÁ½ÖÖÄ£ÐÍÊôÓÚʼþÇý¶¯½âÎö£¬²»»áÒ»´ÎÐÔ½«Õû¸öXMLÎĵµ¼ÓÔØµ½ÄÚ´æÖУ¬¼«´ó½µµÍ×ÊÔ´Õ¼Óá£ÀýÈ磬ÓÃSAXµÄÀú³ÌÖУ¬¹³×Óº¯Êý£¨ÈçstartElement¡¢endElement£©Öð²½´¦Öóͷ£²îÒ첿ÃÅ¡£
ÉèÖúÏÀíµÄ»º³åÇøÓë¹Ü³Ì£ºÅäÖýâÎöÆ÷²ÎÊý£¬ÈçÉ趨»º³åÇø´óС£¬ÓÅ»¯Öð²½¶ÁÈ¡¡£
Á÷ʽ´¦Öóͷ££º½áºÏÁ÷²Ù×÷£¬½áºÏ×Ô½ç˵Âß¼£¬ÖÆÖ¹Ò»´ÎÐÔÈ«ÔØÈë¡£
ÆóÒµ¼¶Ó¦ÓÃÖУ¬ÑéÖ¤¹æÔò²»Í£±ä»¯»òÐèÒªÀ©Õ¹£¬µ¥Ò»ÑéÖ¤·½Ê½ÄÑÒÔÂú×ãÐèÇó¡£XercesÖ§³ÖÁé»îÀ©Õ¹ÑéÖ¤Âß¼¡£
ʹÓÃ×Ô½ç˵Schema£ºÔÚXMLSchemaÖнç˵רÊô¹æÔò£¬ÅäºÏXercesÑéÖ¤»úÖÆ¡£±àд×Ô½ç˵´íÎó´¦Öóͷ£Æ÷£ºÊµÏÖErrorHandler½Ó¿Ú£¬²¶×½ºÍ¹ýÂËÑéÖ¤´íÎ󣬯¾¾Ýʵ¼ÊÐèÇó×ö³öµ÷Õû¡£½áºÏÓ¦ÓÃÂß¼£ººÃ±È£¬ÕýÔòÑé֤ij¸ö×ֶλ¨Ñù£¬»òÕß½»Ö¯ÑéÖ¤²îÒ첿ÃŵÄÄÚÈÝ¡£
³ýÁË»ù´¡µÄ½âÎöÓëÑéÖ¤£¬»¹¿ÉÒÔÀûÓÃXerces½áºÏXPath¡¢XQuery½øÐÐÉî¶ÈÊý¾ÝÌáÈ¡¡£
ʹÓÃXerces½âÎöXMLºó£¬½«Document¹¤¾ßת·¢¸øXPathÒýÇæ£¨ÈçJAXP£©¡£±àдÅÓ´ó²éѯ£ºÉ¸Ñ¡Âú×ãÌõ¼þµÄÔªËØ»òÊôÐÔ£¬¿ìËÙÌáȡĿ±êÐÅÏ¢¡£ÊµÏÖÊý¾Ýת»¯£º½«³éÈ¡ÐÅϢתΪÆäËûÊý¾Ý½á¹¹»ò´æ´¢»¨Ñù¡£
Ëæ×Å¿ª·¢Á÷³ÌµÄÖð²½³ÉÊ죬XercesÔÚ²âÊÔºÍCIÖеĽÇɫҲ±äµÃÖØÒª¡£
±àдXMLÑéÖ¤µ¥Ôª²âÊÔ£º±£Ö¤²îÒì°æ±¾XMLÄ£°åµÄÕýµ±ÐÔ¡£¼¯³ÉÑéÖ¤Á÷³Ì£ºÔÚCI/CDÖмÓÈëXMLÑéÖ¤»·½Ú£¬È·±£Ã¿´ÎÌá½»¶¼ÇкϹ淶¡£ÐÔÄÜ¼à¿Ø£º¼à¿ØÑé֤ϢÕùÎöʱ¼ä£¬ÓÅ»¯ÅäÖá£
Öð·¨Ê½ÊÔ£ºÀûÓÃXercesÌṩµÄÏêϸ´íÎóÐÅÏ¢£¬¶¨Î»ÑéÖ¤ÎÊÌâ¡£ÔöÁ¿¼ÓÔØ£º¶Ô´óÐÍÎļþ½ÓÄɷֶδ¦Öóͷ££¬ÖÆÖ¹×èÈû¡£½áºÏ¶àỊ̈߳ºÔÚÐèÒª¸ßÍÌ͵ÄÓ¦ÓÃÖУ¬ºÏÀíÀûÓöàÏ߳̽øÐв¢ÐнâÎö¡£
ÓëSpring¡¢SpringBoot½áºÏµÄ×î¼Ñʵ¼ù¡£Ö§³Ö×îеÄXMLSchema1.1³ß¶È¡£ÌáÉý´íÎó´¦Öóͷ£Óëµ÷ÊÔµÄÓѺÃÐÔ¡£
×ܽáһϣ¬ÒªÔÚʵ¼Ê¿ª·¢ÖгäʵÀûÓÃXercesJava½âÎöÆ÷µÄÓÅÊÆ£¬²»¹âÐèÒªÀí½âÆä»ù´¡¼Ü¹¹£¬»¹ÒªÉÆÓÚ½áºÏÖÖÖÖ¼¼ÊõÊֶΣ¬Æ¾¾Ýʵ¼Ê³¡¾°Áé»îµ÷ÕûÕ½ÂÔ¡£Ö»ÓÐÕâÑù£¬²ÅÆøÈÃXML´¦Öóͷ£±äµÃ¸üÄþ¾²¡¢¸ü¸ßЧ¡¢¸üÖÇÄÜ¡£
Ô¸Õâ·ÝÉî¶ÈÆÊÎö×ÊÖúÄãÔÚXMLÊÀ½çÓÎÈÐÓÐÓ࣬ÂõÏò¸ü¸ßµÄ¿ª·¢¾³½ç¡£