Self-closing tags in XML files

后端 未结 5 967
无人共我
无人共我 2020-11-29 09:28

I noticed that they work with PHP SimpleXML.

But all XML examples I found on the web close them the old way:

5条回答
  •  余生分开走
    2020-11-29 09:56

    See the W3C specs for XML and XHTML:

    • http://www.w3.org/TR/xml/#sec-starttags
    • http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict

    It depends on the Element Type declaration

    An element with no content is said to be empty. The representation of an empty element is either a start-tag immediately followed by an end-tag, or an empty-element tag.

    but also

    Empty-element tags may be used for any element which has no content, whether or not it is declared using the keyword EMPTY. For interoperability, the empty-element tag SHOULD be used, and SHOULD only be used, for elements which are declared EMPTY.

    This means, when your DTD contains something like

    
    

    you should use

    
    

    unless you have good reason to use

    
    

    Note that SHOULD is defined in RFC2119 as

    This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.

    If you are working with XML that does not have a DTD or Schema, you can also influence how the XML is serialized with a predefined libxml constant:

    LIBXML_NOEMPTYTAG (integer): Expand empty tags (e.g.
    to

    )

    But note that this option is currently just available in the functions DOMDocument::save and DOMDocument::saveXML, so you cannot use it with SimpleXml.

提交回复
热议问题