XML Schema nillable=¡±true¡± vs minOccurs=¡±0¡å
³ö´¦£ºhttp://www.dimuthu.org/blog/2008/08/18/xml-schema-nillabletrue-vs-minoccurs0/
¡¾Ç°ÑÔ¡¿Ò»¸öÔÂǰÑо¿¹ýnillable="true"ºÍ vs minOccurs="0"µÄÇø·Ö£¬Ã»ÓÐÏëµ½°¡£¬½ñÌì¾Í¼Ç²»µÃÁË£¬¿´À´ÕæÊǺüÇÐÔ²»ÈçÀñÊÍ·°¡£¬¿öÇÒÎÒ»¹Ã´µÄºÃ¼ÇÐÔ¡£¡£¡£¡£
¡¾×ܽ᡿ӢÎÄÒ»ÑÛ¿´²»³ö½áÂÛ£¬ËµµãººÓïÖ±½ÓЩ£¬±ð˵ÎÒÍÁ¹þ~
nillable="true"£º¸ÃÔªËØµÄÖµ¿ÉÒÔΪ¿Õ£¬µ«ÊǸÃÔªËØ²»ÄÜÊ¡ÂÔ£¬Ò²¾ÍÊÇ˵£¬Ö»ÄÜ£º
<minzero xsi:nil="true"><minzero>
¶ø²»ÄÜÖ±½Ó½«minzeroÕâ¸öÔªËØÈ¥µô
£¨×¢Ò⣺xsi:nil="true"»òÕßxsi:nil="1"Ó¦¸Ã¾ÍÊDZíʾÕâ¸öÔªËØÎª¿Õ£©
minOccurs="0"£º¸ÃÔªËØ¿ÉÒÔÖ±½Ó±»Ê¡ÂÔµô£¬µ«ÊDz»ÄÜÈøÃÔªËØµÄֵΪ¿Õ£¬Ò²¾ÍÊÇ˵£¬²»ÄÜ£º
<minzero xsi:nil="true"><minzero>
In a WSDL, XML Schema is the section where it define the message format for each operations, which eventually become the real API that users are interested. And it is the most tricky part of the WSDL. Nowadays there are many tools that you can design and use WSDLs without any needs in knowing the meaning of a single line of the WSDL. But there are situations that you may find it is better you have some knowledge in XML Schema section and in WSDL overall.
For this post I m taking a simple example of use of nillable=”true” and minOccurs=”0″. Take the following example.
<xs:element name="myelements">
<xs:complexType>
<xs:sequence>
<xs:element name="nonboth" type="xs:string"/>
<xs:element minOccurs="0" name="minzero" type="xs:int"/>
<xs:element name="nilint" nillable="true" type="xs:int"/>
<xs:element name="nilstring" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="minzeronil" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Just ignore the meaning of what nillable and minOccurs attributes for now. You can safely say the following XML is valid for the above Schema.
<myelements>
<nonboth>i can't be either nil nor skipped<nonboth>
Ïà¹ØÎĵµ£º
Ò»¡¢½âÎöXMLÎļþʱ£¬Óöµ½DTDµÄ¶¨ÒåÒªÔõô°ì£¿
ÏÂÃæÕâ¶Î´úÂëÊÇibatisÅäÖÃÎļþ£¬ÓÃw3c Dom(ÆäʵÈÎÒâÒ»ÖÖ½âÎö·½Ê½¶¼ÊÇÕâÑù)¶¼»á´Óhttp://www.ibatis.com/dtd/sql-map-config-2.dtd
Õâ
¸öµØÖ·ÕÒ¶ÔÓ¦µÄDTDÎļþ½øÐÐУÑ飬Èç¹ûÒòÌØÍøÉÏÕâ¸öµØÖ·²»´æÔڵϰ£¬¾Í»á±¨ java.net.ConnectException:
Con ......
Óŵ㣺ÓÉÓÚxmlÊÇ¿ÉÀ©Õ¹µÄ£¬ËùÒÔxml¿ÉÒÔÃèÊöÀ´×Ô¶àÖÖÓ¦ÓóÌÐòµÄÊý¾Ý¡£
ͨ¹ýÁ£¶È¸üÐÂÀ´Ìá¸ßÐÔÄÜ¡£XML ÔÊÐíÁ£¶È¸üС£¿ª·¢ÈËÔ±²»±ØÔÚÿ´Î¸Ä¶¯Ê±¶¼·¢ËÍÕû¸ö½á¹¹»¯Êý¾Ý¼¯¡£ÓÐÁËÁ£¶È¸üкó£¬Ö»ÓиıäµÄÔªËØ²Å´Ó·þÎñÆ÷·¢Ë͵½¿Í»§»ú¡£ ......
½ñÌ칤×÷ÉÏÅöµ½Ò»¸öÎÊÌâ ÓÉÓÚÎÒÃǵÄÏîÄ¿Êý¾ÝÌ«ÉÙ ËùÒÔÐèÒª´Óweb searchÄDZ߽èµ÷Êý¾Ý£¬ËûÃÇÖ»¸øÎÒÃÇÌṩÁËÒ»¸öxmlµÄ½Ó¿Ú¡£Òò´Ë£¬ÎÒÃÇÐèÒª°ÑxmlµÄÊý¾Ýת»¯³Éhtml³ÊÏÖ¸ø´ó¼Ò¡£ÓÉÓÚÏîÄ¿ÊÇ»ùÓÚphpµÄ£¬ËùÒÔ¾ÍÞðÆúÁËÓÃjsÀ´¶ÁÈ¡xmlÑ¡ÔñÁ˼ÌÐøÊ¹ÓÃphp¡£²»¹ý£¬ÎÒÒÔǰ´ÓÀ´Ã»ÓÐ×ö¹ý´ËÀàµÄ³¢ÊÔ ËùÒÔÕÒÁ˺ܶàÍøÉÏ×ÊÁÏͬʱ²ÎÕÕÁËphpµÄ¹¤× ......
£¨µÚ1Õ£©
(P1~3)1£®ÓÃ×Ô¼ºµÄÓïÑÔ¶ÔSGML¡¢HTMLºÍXML×÷¼òµ¥½éÉܺͶԱȡ£
SGML ÊÇÒ»ÖÖ²ÉÓñê¼ÇÀ´ÃèÊöÎĵµÊý¾ÝµÄͨÓÃÓïÑÔ£¬SGML¶¨ÒåÁË»ù±¾µÄÓï·¨ºÃ£¬Í¬Ê±Ò²ÔÊÐíÓû§½¨Á¢×Ô¼ºµÄÔªËØ±ê¼Ç¡£
HTML ²ÉÓÃÁ˺ÜСһ²¿·ÖSGMLµÄ±ê¼Ç£¬Í¬Ê±HTML²ÉÓõÄÊǹ̶¨±ê¼ÇÒ²²»ÐèÒª°üº¬DTD¡£
XML ͬHTMLÒ»Ñù£¬¶¼Êdzö×ÔÓÚSGML±ê׼ͨÓñê¼ÇÓï ......