index.html
author travil
Thu, 03 Apr 2014 12:53:17 -0700
changeset 56 b9d2104e193a
parent 55 49c41bbec2b4
child 57 d799e62378b7
permissions -rw-r--r--
Revert changelist 23 (0890bba5b66a) -- sigh.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     1
<!doctype html>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     2
<html>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     3
<head>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     4
    <meta charset=UTF-8>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     5
    <title>DOM Parsing and Serialization</title>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     6
    <style>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     7
        /* Make these stand-out more... */
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     8
        .externalDFN {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
     9
            font-style: italic;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    10
            background-color: #fff9d6;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    11
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    12
        /* Switch statement */
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    13
        dl.switch dt::before {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    14
            content: "↪ ";
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    15
            margin-left: 1em;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    16
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    17
        /* Better spacing around various lists (implied paragraph children) */
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    18
        ol > li, section:not(#toc) ul > li, section dl > dt {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    19
            margin: 1em 0;
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
    20
        }
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
    21
        var { color: maroon; }
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    22
        /* domintro styling */
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    23
        dl.domintro {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    24
            background-color: rgb(221, 255, 221);
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    25
            padding: 1em 0.5em 1em 2em;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    26
            clear: both;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    27
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    28
        dl.domintro dt {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    29
            color: black;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    30
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    31
        dl.domintro > dd {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    32
            color: green;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    33
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    34
        dl.domintro::before {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    35
            float: right;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    36
            background-color: white;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    37
            display: block;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    38
            border: 2px solid black;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    39
            color: green;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    40
            margin-top: -20px;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    41
            padding: 2px;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    42
            content: "This box is non-normative. Implementation requirements are given below this box.";
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    43
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    44
        /* Fancy table stuff */
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    45
        table {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    46
            border-collapse: collapse;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    47
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    48
        thead tr {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    49
            border-bottom: 2px solid black;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    50
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    51
        tbody tr:not(:last-child) {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    52
            border-bottom: 1px solid black;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    53
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    54
        td {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    55
            border-left: 1px solid black;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    56
            padding: 4px;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    57
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    58
        /* Extra IDL :-) */
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    59
        .extraidl {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    60
            line-height: 120%;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    61
            padding: 1em;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    62
            border-top: 1px solid #90b8de;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    63
            border-bottom: 1px solid #90b8de;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    64
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    65
        .extraidl:before {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    66
            width: 150px;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    67
            color: #fff;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    68
            padding: 3px;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    69
            font-weight: bold;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    70
            font-family: initial;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    71
            margin: -1em 0 1em -1em;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    72
            display: block;
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    73
            content: "WebIDL";
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    74
            background-color: rgb(144, 184, 222);
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    75
        }
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    76
    </style>
8
7bddbad3c43e Update http -> https
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 6
diff changeset
    77
    <script type="text/javascript" src='https://www.w3.org/Tools/respec/respec-w3c-common' class='remove' async></script>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    78
    <script type="text/javascript" src="respecConfig.js" class='remove'></script>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    79
</head>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    80
<body>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    81
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    82
    <section id="abstract">
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    83
       <p>This specification defines various APIs for programmatic access to 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    84
          HTML and generic XML parsers by web applications for use in parsing 
24
42973d9748d9 Attempt to address: https://www.w3.org/Bugs/Public/show_bug.cgi?id=18938
travil
parents: 23
diff changeset
    85
          and serializing DOM nodes.</p>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    86
    </section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    87
24
42973d9748d9 Attempt to address: https://www.w3.org/Bugs/Public/show_bug.cgi?id=18938
travil
parents: 23
diff changeset
    88
    <section id="sotd">
42973d9748d9 Attempt to address: https://www.w3.org/Bugs/Public/show_bug.cgi?id=18938
travil
parents: 23
diff changeset
    89
        <p>This specification is based on the original work of the <a href="http://domparsing.spec.whatwg.org/">
31
979528721c40 Sync up the editor's draft with the last published format (post publication-process changes)
travil
parents: 24
diff changeset
    90
            DOM Parsing and Serialization</a> Living Specification, though it has diverged in terms of 
24
42973d9748d9 Attempt to address: https://www.w3.org/Bugs/Public/show_bug.cgi?id=18938
travil
parents: 23
diff changeset
    91
            supported features, normative requirements, and algorithm specificity. As appropriate, 
31
979528721c40 Sync up the editor's draft with the last published format (post publication-process changes)
travil
parents: 24
diff changeset
    92
            relevant fixes from the living specification are incorporated into this document. 
24
42973d9748d9 Attempt to address: https://www.w3.org/Bugs/Public/show_bug.cgi?id=18938
travil
parents: 23
diff changeset
    93
    </section>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    94
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    95
3
881b6e205d22 PubRules fixup
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 1
diff changeset
    96
    <section id="issues" class="introductory">
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    97
        <h1>Issues</h1>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
    98
        
13
49bc54f5937f First issue removed, and issues section clarified.
travil
parents: 12
diff changeset
    99
        <p class=issue>Open issues that appear throughout the remainder of this 
49bc54f5937f First issue removed, and issues section clarified.
travil
parents: 12
diff changeset
   100
        document will be highlighted like this.</p>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   101
    </section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   102
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   103
    <section id="conformance">
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   104
        <p>Requirements phrased in the imperative as part of algorithms
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   105
        (such as "strip any leading space characters" or "return false and
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   106
        terminate these steps") are to be interpreted with the meaning of the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   107
        key word ("must", "should", "may", etc) used in introducing the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   108
        algorithm.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   109
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   110
        <p>Conformance requirements phrased as algorithms or specific steps
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   111
        may be implemented in any manner, so long as the end result is
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   112
        equivalent. (In particular, the algorithms defined in this
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   113
        specification are intended to be easy to follow, and not intended to
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   114
        be performant.)</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   115
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   116
        <p id="hardwareLimitations">User agents may impose
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   117
        implementation-specific limits on otherwise unconstrained inputs,
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   118
        e.g. to prevent denial of service attacks, to guard against running
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   119
        out of memory, or to work around platform-specific limitations.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   120
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   121
        <p>When a method or an attribute is said to call another method or 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   122
        attribute, the user agent must invoke its internal API for that 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   123
        attribute or method so that e.g. the author can't change the behavior 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   124
        by overriding attributes or methods with custom properties or functions 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   125
        in ECMAScript.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   126
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   127
        <p>Unless otherwise stated, string comparisons are done in a <a
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   128
        data-spec="DOM4" class="externalDFN" title="case-sensitive">
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   129
        case-sensitive</a> manner.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   130
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   131
        <p>If an algorithm calls into another algorithm, any exception that is 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   132
        thrown by the latter (unless it is explicitly caught), must cause the 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   133
        former to terminate, and the exception to be propagated up to 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   134
        <em>its</em> caller.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   135
    
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   136
        <section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   137
            <h2>Dependencies</h2>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   138
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   139
            <p>The IDL fragments in this specification must be interpreted as
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   140
            required for conforming IDL fragments, as described in the Web IDL
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   141
            specification. [[!WEBIDL]]</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   142
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   143
            <p>Some of the terms used in this specification are defined in
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   144
            [[DOM4]], [[HTML5]], and [[XML10]].
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   145
        </section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   146
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   147
        <section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   148
            <h2>Extensibility</h2>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   149
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   150
            <p>Vendor-specific proprietary extensions to this specification are
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   151
            strongly discouraged. Authors must not use such extensions, as
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   152
            doing so reduces interoperability and fragments the user base,
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   153
            allowing only users of specific user agents to access the content in
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   154
            question.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   155
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   156
            <p>If vendor-specific extensions are needed, the members should be
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   157
            prefixed by vendor-specific strings to prevent clashes with future
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   158
            versions of this specification. Extensions must be defined so that
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   159
            the use of extensions neither contradicts nor causes the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   160
            non-conformance of functionality defined in the specification.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   161
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   162
            <p>When vendor-neutral extensions to this specification are needed,
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   163
            either this specification can be updated accordingly, or an
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   164
            extension specification can be written that overrides the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   165
            requirements in this specification. When someone applying this
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   166
            specification to their activities decides that they will recognise
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   167
            the requirements of such an extension specification, it becomes an
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   168
            <dfn title="other applicable specifications">applicable
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   169
            specification</dfn> for the purposes of conformance requirements in
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   170
            this specification.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   171
            <!-- http://www.w3.org/mid/17E341CD-E790-422C-9F9A-69347EE01CEB@iki.fi -->
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   172
        </section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   173
    </section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   174
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   175
    <section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   176
        <h2>Terminology</h2>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   177
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   178
        <p>The term <dfn>context object</dfn> means the object on which the method or
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   179
        attribute being discussed was called.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   180
    </section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   181
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   182
    <section>
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   183
        <h2>Namespaces</h2>
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   184
        
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   185
        <p>The <dfn title="html-ns">HTML namespace</dfn> is <code>http://www.w3.org/1999/xhtml</code>.
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   186
        <p>The <dfn title="xml-ns">XML namespace</dfn> is <code>http://www.w3.org/XML/1998/namespace</code>.
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   187
        <p>The <dfn title="xmlns-ns">XMLNS namespace</dfn> is <code>http://www.w3.org/2000/xmlns/</code>.
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   188
    </section>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   189
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   190
    <section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   191
        <h1>Parsing and serializing <a title="node" data-spec="DOM4" class="externalDFN">Node</a>s</h1>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   192
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   193
        <section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   194
            <h2>Parsing</h2>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   195
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   196
            <p>The following steps form the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   197
            <dfn title="concept-parse-fragment">fragment parsing algorithm</dfn>, whose
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   198
            arguments are a <var>markup</var> string and a
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   199
            <var>context element</var>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   200
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   201
            <ol>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   202
              <li>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   203
                <p>If the <var>context element</var>'s
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   204
                <a title="concept-node-document" data-spec="DOM4" class="externalDFN">node document</a>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   205
                is an <a title="html-document" data-spec="DOM4" class="externalDFN">HTML document</a>: let
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   206
                <var>algorithm</var> be the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   207
                <a title="html-fragment-parsing-algorithm" data-spec="HTML5" class="externalDFN">HTML 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   208
                fragment parsing algorithm</a>.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   209
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   210
                <p>If the <var>context element</var>'s
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   211
                <a title="concept-node-document" data-spec="DOM4" class="externalDFN">node document</a>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   212
                is an <a title="xml-document" data-spec="DOM4" class="externalDFN">XML document</a>: let
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   213
                <var>algorithm</var> be the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   214
                <a title="xml-fragment-parsing-algorithm" data-spec="HTML5" class="externalDFN">XML 
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   215
                fragment parsing algorithm</a>.</p>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   216
              </li>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   217
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   218
              <li>Invoke <var>algorithm</var> with <var>markup</var> as
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   219
              the <var>input</var>, and <var>context element</var> as the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   220
              <var><a data-spec="HTML5" title="concept-frag-parse-context" class="externalDFN">context</a></var>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   221
              element.</li>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   222
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   223
              <li>Let <var>new children</var> be the nodes returned.</li>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   224
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   225
              <li>Let <var>fragment</var> be a new
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   226
              <code><a title="documentfragment" data-spec="DOM4" class="externalDFN">DocumentFragment</a></code> whose
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   227
              <a title="concept-node-document" data-spec="DOM4" class="externalDFN">node document</a>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   228
              is <var>context element</var>'s
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   229
              <a title="concept-node-document" data-spec="DOM4" class="externalDFN">node document</a>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   230
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   231
              <li><a data-spec="DOM4" title="concept-node-append" class="externalDFN">Append</a>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   232
              each <a data-spec="DOM4" title="concept-node" class="externalDFN">node</a> in
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   233
              <var>new children</var> to <var>fragment</var> (in order).
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   234
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   235
              <p class=note>This ensures the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   236
              <a title="concept-node-document" data-spec="DOM4" class="externalDFN">node document</a>
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
   237
              for the new <a data-spec="DOM4" title="concept-node" class="externalDFN">nodes</a> is correct.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   238
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   239
              <li>Return <var>fragment</var>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   240
            </ol>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   241
    </section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   242
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   243
    <section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   244
        <h2>Serializing</h2>
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   245
        <p>The following steps form the 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   246
            <dfn title="concept-fragment-serializing-algorithm">fragment serializing algorithm</dfn>,
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   247
            whose arguments are a <code><a title="node" data-spec="DOM4" class="externalDFN">Node</a></code> 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   248
            <var>node</var> and a flag <dfn title="concept-well-formed">require well-formed</dfn>.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   249
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   250
        <ol>
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   251
            <li>Let <var>context document</var> be <var>node</var>'s
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   252
                <a title="concept-node-document" data-spec="DOM4" class="externalDFN">node document</a>.
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   253
            <li>If <var>context document</var> is an
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   254
                <a title="html-document" data-spec="DOM4" class="externalDFN">HTML document</a>, 
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
   255
                return an <a title="concept-serialize-html">HTML serialization</a> of <var>node</var>.
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   256
            <li>Otherwise, <var>context document</var> is an
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   257
                <a title="xml-document" data-spec="DOM4" class="externalDFN">XML document</a>;
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   258
                return an <a title="concept-serialize-xml">XML serialization</a> of <var>node</var>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   259
                passing the flag <var>require well-formed</var>.
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   260
            <p class="note">The <a title="concept-serialize-xml">XML serialization</a> defined in this document
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   261
                conforms to the requirements of the <a data-spec="HTML5" title="xml-fragment-serialization-algorithm" 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   262
                class="externalDFN">XML fragment serialization algorithm</a> defined in [[HTML5]].</p>
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   263
        </ol>
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   264
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   265
        <p>To produce an <dfn title="concept-serialize-html">HTML serialization</dfn> of a
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   266
            <code><a title="node" data-spec="DOM4" class="externalDFN">Node</a></code> <var>node</var>, the user agent
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   267
            must run the
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   268
            <a data-spec="HTML5" title="html-fragment-serialization-algorithm" class="externalDFN">HTML 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   269
            fragment serialization algorithm</a> [[!HTML5]] on <var>node</var> and return the string produced.
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   270
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   271
        <p>To produce an <dfn title="concept-serialize-xml">XML serialization</dfn> of a
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   272
            <code><a title="node" data-spec="DOM4" class="externalDFN">Node</a></code> <var>node</var> given a
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   273
            flag <var>require well-formed</var>, run the following steps:
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   274
        <ol>
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   275
            <li>Let <dfn title="concept-context-namespace">context namespace</dfn> be <code>null</code>.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   276
                The <a title="concept-context-namespace">context namespace</a> is changed when a
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   277
                <var>node</var> serializes a different default namespace definition from its parent. The 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   278
                algorithm assumes no namespace to start.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   279
            <li>Let <dfn title="concept-namespace-prefix-map">namespace prefix map</dfn> be a new map 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   280
                for associating <code>namespaceURI</code> and namespace <code>prefix</code> pairs, where 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   281
                <code>namespaceURI</code> values are the map's keys, and <code>prefix</code> values are 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   282
                the map's key values. The <a title="concept-namespace-prefix-map">namespace prefix map</a>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   283
                will be populated by previously seen namespaceURIs and their most recent prefix associations
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   284
                for a subtree. <span class="note"><strong>Note:</strong> the 
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   285
                <a title="concept-namespace-prefix-map">namespace prefix map</a> only associates a single
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   286
                prefix value with a given namespaceURI. During serialization, if different namespace prefixes 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   287
                are found that map to the same namespaceURI, the last one encountered "wins" by replacing the
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   288
                existing key value in the map with the new prefix value.</span>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   289
            <li>Initialize the <a title="concept-namespace-prefix-map">namespace prefix map</a> with the 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   290
                <a title="xml-ns">XML namespace</a> key and string <code>"xml"</code> as the key value.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   291
            <li>Let <dfn title="concept-generated-prefix">generated namespace prefix index</dfn> be an integer
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   292
                with a value of <code>1</code>. The <a title="concept-generated-prefix">generated namespace
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   293
                prefix index</a> is used to generate a new unique prefix value when no suitable existing 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   294
                namespace prefix is available to serialize a <var>node</var>'s namespaceURI (or the namespaceURI
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   295
                of one of <var>node</var>'s attributes). <span class="note">See the 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   296
                <a title="concept-generate-prefix">generate a prefix</a> algorithm.</span>
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   297
            <li>Return the result of running the <a title="concept-xml-serialization-algorithm">XML serialization
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   298
                algorithm</a> on <var>node</var> passing the <a title="concept-context-namespace">context 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   299
                namespace</a>, <a title="concept-namespace-prefix-map">namespace prefix map</a>, 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   300
                <a title="concept-generated-prefix">generated namespace prefix index</a> reference, and the
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   301
                flag <var>require well-formed</var>. If an <dfn title="concept-algorithm-exception">exception</dfn>
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   302
                occurs during the execution of the algorithm, then catch that exception and throw a 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   303
                <code><a data-spec="DOM4" title="domexception" class="externalDFN">DOMException</a></code> with 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   304
                name <code>InvalidStateError</code>.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   305
        </ol>
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   306
        
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   307
        <p>An <a title="concept-serialize-xml">XML serialization</a> differs from an 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   308
            <a title="concept-serialize-html">HTML serialization</a> in the following ways:
35
c4fc4f1467ab Add note about the primary differences between and HTML and XML serialization
tleithea
parents: 34
diff changeset
   309
        <ul>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   310
            <li><a title="element" data-spec="DOM4" class="externalDFN">Elements</a> and
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   311
                <a title="concept-attribute" data-spec="DOM4" class="externalDFN">attributes</a>
45
cddb90aca176 Clarification on what the XML Serialization does to nodes and what guarantees it
travil
parents: 44
diff changeset
   312
                will always be serialized such that their namespaceURI is preserved. In some cases 
cddb90aca176 Clarification on what the XML Serialization does to nodes and what guarantees it
travil
parents: 44
diff changeset
   313
                this means that an existing prefix, prefix declaration attribute or default namespace 
cddb90aca176 Clarification on what the XML Serialization does to nodes and what guarantees it
travil
parents: 44
diff changeset
   314
                declaration attribute might be dropped, substituted or changed.
46
dbaee43f1d5b Fix bug 25029: Sync up the void element list with latest HTML5.1 list
travil
parents: 45
diff changeset
   315
                An <a title="concept-serialize-html">HTML serialization</a> does not attempt to 
dbaee43f1d5b Fix bug 25029: Sync up the void element list with latest HTML5.1 list
travil
parents: 45
diff changeset
   316
                preserve the namespaceURI.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   317
            <li><a title="element" data-spec="DOM4" class="externalDFN">Elements</a> not in the
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   318
                <a title="html-ns">HTML namespace</a> containing no children, are serialized using 
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   319
                the self-closing tag syntax (i.e., according to the <var>EmptyElemTag</var> 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   320
                production of [[XML10]]).
35
c4fc4f1467ab Add note about the primary differences between and HTML and XML serialization
tleithea
parents: 34
diff changeset
   321
        </ul>
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   322
        
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   323
        <p>Otherwise, the algorithm for producing an <a title="concept-serialize-xml">XML serialization</a> 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   324
            is designed to produce a serialization that is compatible with the 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   325
            <a title="html-parser" data-spec="HTML5" class="externalDFN">HTML parser</a>. For example, 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   326
            elements in the <a title="html-ns">HTML namespace</a> that contain no child nodes are serialized 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   327
            with an explicit begin and end tag rather than using the self-closing tag syntax [[XML10]].
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   328
        
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   329
        <p class="note">Per [[DOM4]], <code><a title="interface-attr" data-spec="DOM4" class="externalDFN">Attr</a></code>
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   330
            objects do not inherit from <code><a title="node" data-spec="DOM4" class="externalDFN">Node</a></code>, and thus cannot 
52
de442ae4cc27 Oops, previous fix was wrong--Attr object serialization should throw.
travil
parents: 51
diff changeset
   331
            be serialized by the <a title="concept-xml-serialization-algorithm">XML serialization algorithm</a>.
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   332
            An attempt to serialize an <code><a title="interface-attr" data-spec="DOM4" class="externalDFN">Attr</a></code>
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   333
            object will result in a <code>TypeError</code> exception [[WEBIDL]].
52
de442ae4cc27 Oops, previous fix was wrong--Attr object serialization should throw.
travil
parents: 51
diff changeset
   334
        
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   335
        <p>To run the <dfn title="concept-xml-serialization-algorithm">XML serialization algorithm</dfn> on
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   336
            a <var>node</var> given a <a title="concept-context-namespace">context namespace</a> 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   337
            <var>namespace</var>, a <a title="concept-namespace-prefix-map">namespace prefix map</a>
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   338
            <var>prefix map</var>, a <a title="concept-generated-prefix">generated namespace prefix index</a>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   339
            <var>prefix index</var>, and a flag <var>require well-formed</var>, the user agent must run the 
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   340
            appropriate steps, depending on <var>node</var>'s interface:</p>
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   341
        
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   342
        <dl class=switch>
51
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   343
            <dt><code><a title="interface-element" data-spec="DOM4" class="externalDFN">Element</a></code>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   344
            <dd>
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   345
                <p>Run the following algorithm:
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   346
                <ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   347
                    <!-- "namespace" was passed via the caller, it's the default namespace scope -->
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   348
                    <!-- "prefix map" was passed via the caller, it's the namespace->prefix map -->
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   349
                    <!-- "prefix index" was passed via the caller, it's a number for generating prefixes if necessary -->
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   350
                    <!-- "require well-formed" was passed via the caller, it's a flag (true/false) for whether certain validation steps should be taken during serialization. -->
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   351
                    <li>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   352
                        <code>true</code>), and this <var>node</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   353
                        <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   354
                        attribute contains the character "<code>:</code>" (U+003A COLON) or does not match the
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   355
                        XML <code>Name</code> production [[XML10]], then <a title="concept-algorithm-exception">throw an 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   356
                        exception</a>; the serialization of this <var>node</var> would not be a well-formed element.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   357
                    <li>Let <var>markup</var> be the string "<code>&lt;</code>" (U+003C LESS-THAN SIGN).
36
393c42a44e7f Fix Bug 25062, and some cleanup of the Element serialization algorithm
travil@microsoft.com
parents: 35
diff changeset
   358
                    <li>Let <var>qualified name</var> be an empty string.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   359
                    <li>Let a <var>skip end tag</var> flag have the value <code>false</code>.
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   360
                    <li>Let an <var>ignore namespace definition attribute</var> flag have the value <code>false</code>.
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   361
                    <li>Let <var>map</var> be a copy of the <var>prefix map</var> <a 
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   362
                        title="concept-namespace-prefix-map">namespace prefix map</a>.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   363
                    <li>Let <var>element prefixes list</var> be an empty list. <span class="note">This list is 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   364
                        local to each element. Its purpose is to ensure that there are no conflicting prefixes 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   365
                        should a new namespace prefix attribute need to be generated.</span>
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   366
                    <li>Let <var>duplicate prefix definition</var> be <code>null</code>.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   367
                    <li>Let <var>local default namespace</var> be the result of 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   368
                        <a title="concept-record-namespace-info">recording the namespace information</a> for 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   369
                        <var>node</var> given <var>map</var>, <var>element prefixes list</var>, and 
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   370
                        <var>duplicate prefix definition</var>.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   371
                    <p class="note">This above step will update the <var>map</var> with any found namespace prefix 
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   372
                        definitions, add the found prefix definitions to the <var>element prefixes list</var>, optionally 
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   373
                        set the <var>duplicate prefix definition</var> value, and return a local default namespace 
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   374
                        value defined by a default namespace attribute if one exists. Otherwise it returns
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   375
                        <code>null</code>.</p>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   376
                    <li>Let <var>inherited ns</var> be a copy of <var>namespace</var>.
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   377
                    <li>Let <var>ns</var> be the value of <var>node</var>'s 
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
   378
                        <code><a title="dom-element-namespaceuri" data-spec="DOM4" class="externalDFN">namespaceURI</a></code>
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   379
                        attribute.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   380
                    <li>If <var>inherited ns</var> is equal to <var>ns</var>, then:
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   381
                    <ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   382
                        <li>If <var>local default namespace</var> is not <code>null</code>, then set <var>ignore 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   383
                            namespace definition attribute</var> to <code>true</code>.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   384
                        <li>If <var>ns</var> is the <a title="xml-ns">XML namespace</a>, then let <var>qualified name</var> 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   385
                            be the concatenation of the string "<code>xml:</code>" and the value of <var>node</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   386
                            <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   387
                        <li>Otherwise, let <var>qualified name</var> be the value of <var>node</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   388
                            <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>.
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   389
                            <span class="note">The <var>node</var>'s prefix is always dropped.</span>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   390
                        <li>Append the value of <var>qualified name</var> to <var>markup</var>.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   391
                    </ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   392
                    <li>Otherwise, <var>inherited ns</var> is not equal to <var>ns</var> (the <var>node</var>'s
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   393
                        own namespace is different from the context namespace of its parent). Run these sub-steps:
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   394
                    <!-- The serialization algorithm must differentiate this node's namespace from it's parent's default
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   395
                        namespace. There are two ways to do this: (1) [preferred due to assumed minimum length] use a 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   396
                        namespace prefix if one is available or (2) use a default namespace declaration. Both cases can 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   397
                        run into conflicts with existing attributes on the element and are handled accordingly. -->
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   398
                    <ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   399
                        <li>Let <var>prefix</var> be the value of <var>node</var>'s 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   400
                            <code><a title="dom-element-prefix" data-spec="DOM4" class="externalDFN">prefix</a></code>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   401
                            attribute.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   402
                        <li>Let <var>candidate prefix</var> be a value from <var>map</var> where there exists a key in 
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   403
                            <var>map</var> that matches the value of <var>ns</var> or if there is no such key, then let
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   404
                            <var>candidate prefix</var> be <code>null</code>.
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   405
                        <!-- Found a suitable prefix to use, either locally, or inherited through a parent node that 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   406
                            matches the node's namespaceURI. This prefix will be used in serialization even if the node 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   407
                            doesn't have a real prefix. -->
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   408
                        <li>If <var>candidate prefix</var> is not <code>null</code> (a suitable namespace prefix is defined 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   409
                            which maps to <var>ns</var>), then:
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   410
                        <ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   411
                            <li>Let <var>qualified name</var> be the concatenation of <var>candidate prefix</var>, 
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   412
                                "<code>:</code>" (U+003A COLON), and <code><a title="dom-element-localname" data-spec="DOM4" 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   413
                                class="externalDFN">localName</a></code>.
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   414
                                <span class="note">There exists on this <var>node</var> or the <var>node</var>'s ancestry a 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   415
                                namespace prefix definition that defines the <var>node</var>'s namespace.</span>
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   416
                            <li>If <var>local default namespace</var> is not <code>null</code> (there exists a locally-defined
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   417
                                default namespace declaration attribute), then let <var>inherited ns</var> get the value of
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   418
                                <var>ns</var>.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   419
                            <li>Append the value of <var>qualified name</var> to <var>markup</var>.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   420
                        </ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   421
                        <!-- Now there's no existing namespace->prefix mapping to override; try to use a prefix: -->
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   422
                        <li>Otherwise, if <var>prefix</var> is not <code>null</code> and <var>local default namespace</var> is 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   423
                            <code>null</code>, then:
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   424
                        <ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   425
                            <li>If the <var>element prefixes list</var> contains the value of <var>prefix</var>, then 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   426
                                let <var>prefix</var> be the result of 
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   427
                                <a title="concept-generate-prefix">generating a prefix</a> providing as input the
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   428
                                <a title="concept-namespace-prefix-map">namespace prefix map</a> <var>map</var>, 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   429
                                <var>node</var>'s <var>ns</var> string, and the <var>prefix index</var> integer.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   430
                            <li>Otherwise, append to <var>map</var> a new key <var>ns</var> whose key value is 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   431
                                <var>prefix</var>.
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   432
                            <!-- Prefix is now either real or generated, and added to the map. -->
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   433
                            <li>Let <var>qualified name</var> be the concatenation
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   434
                            of <var>prefix</var>, "<code>:</code>" (U+003A COLON), and 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   435
                            <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>.
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   436
                            <li>Append the value of <var>qualified name</var> to <var>markup</var>.
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   437
                            <li>Append the following to <var>markup</var>, in order: <span class="note">The following 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   438
                                serializes the new namespace/prefix association just added to the <var>map</var>.</span>
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   439
                            <ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   440
                                <li>"<code> </code>" (U+0020 SPACE);
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   441
                                <li>the string "<code>xmlns:</code>";
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   442
                                <li>the value of <var>prefix</var>;
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   443
                                <li>"<code>="</code>" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   444
                                <li>The result of <a title="concept-serialize-attr-value">serializing an attribute value</a> 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   445
                                    given <var>ns</var> and the <a title="concept-well-formed">require well-formed</a> flag 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   446
                                    as input;
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   447
                                <li>"<code>"</code>" (U+0022 QUOTATION MARK);
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   448
                            </ol>
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   449
                        </ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   450
                        <!-- Giving up on the prefix route, try to use a default namespace instead (stomping on an existing
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   451
                             one if necessary) and dropping the node's prefix -->
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   452
                        <li>Otherwise, if <var>local default namespace</var> is <code>null</code>, or <var>local default 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   453
                            namespace</var> is not <code>null</code> and its value is not equal to <var>ns</var>, then:
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   454
                        <ol>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   455
                            <li>Set the <var>ignore namespace definition attribute</var> flag to <code>true</code>.
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   456
                            <li>Let <var>qualified name</var> be the <var>node</var>'s <code><a title="dom-element-localname" 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   457
                                data-spec="DOM4" class="externalDFN">localName</a></code>.
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   458
                            <li>Let the value of <var>inherited ns</var> be <var>ns</var>. <span class="note">The new
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   459
                                default namespace will be used in the serialization to define this <var>node</var>'s 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   460
                                namespace and act as the context namespace for its children.</span>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   461
                            <li>Append the value of <var>qualified name</var> to <var>markup</var>.
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   462
                            <li>Append the following to <var>markup</var>, in order: <span class="note">The following 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   463
                                serializes the new (or replacement) default namespace definition.</span>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   464
                            <ol>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   465
                                <li>"<code> </code>" (U+0020 SPACE);
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   466
                                <li>the string "<code>xmlns</code>";
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   467
                                <li>"<code>="</code>" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   468
                                <li>The result of <a title="concept-serialize-attr-value">serializing an attribute value</a> 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   469
                                    given <var>ns</var> and the <a title="concept-well-formed">require well-formed</a> flag
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   470
                                    as input;
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   471
                                <li>"<code>"</code>" (U+0022 QUOTATION MARK);
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   472
                            </ol>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   473
                        </ol>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   474
                        <!-- Finally, regardless of prefix, the node has a local default namespace that matches 'ns'.
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   475
                            So, we'll just use that and drop the prefix -->
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   476
                        <li>Otherwise, the <var>node</var> has a <var>local default namespace</var> that matches 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   477
                            <var>ns</var>. Let <var>qualified name</var> be the <var>node</var>'s
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   478
                            <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>,
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   479
                            let the value of <var>inherited ns</var> be <var>ns</var>, and append the value of 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   480
                            <var>qualified name</var> to <var>markup</var>.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   481
                    </ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   482
                    <li>Append to <var>markup</var> the result of the
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   483
                        <a title="concept-serialize-xml-attributes">XML serialization of <var>node</var>'s 
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   484
                        attributes</a> given the
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   485
                        <a title="concept-namespace-prefix-map">namespace prefix map</a> <var>map</var>,
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   486
                        the <a title="concept-generated-prefix">generated prefix index</a> <var>prefix index</var>, the 
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   487
                        flag <var>ignore namespace definition attribute</var> and the value of <var>duplicate 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   488
                        prefix definition</var>.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   489
                    <li>If <var>ns</var> is the <a title="html-ns">HTML namespace</a>,
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   490
                        and the <var>node</var>'s list of 
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   491
                        <a title="concept-tree-child" data-spec="DOM4" class="externalDFN">children</a>
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   492
                        is empty, and the <var>node</var>'s
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   493
                        <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>
20
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   494
                        matches any one of the following 
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   495
                        <a title="void-elements" data-spec="HTML5" class="externalDFN">void elements</a>:
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   496
                        "<code>area</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   497
                        "<code>base</code>",
46
dbaee43f1d5b Fix bug 25029: Sync up the void element list with latest HTML5.1 list
travil
parents: 45
diff changeset
   498
                        "<code>basefont</code>",
dbaee43f1d5b Fix bug 25029: Sync up the void element list with latest HTML5.1 list
travil
parents: 45
diff changeset
   499
                        "<code>bgsound</code>",
20
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   500
                        "<code>br</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   501
                        "<code>col</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   502
                        "<code>embed</code>",
46
dbaee43f1d5b Fix bug 25029: Sync up the void element list with latest HTML5.1 list
travil
parents: 45
diff changeset
   503
                        "<code>frame</code>",
20
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   504
                        "<code>hr</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   505
                        "<code>img</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   506
                        "<code>input</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   507
                        "<code>keygen</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   508
                        "<code>link</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   509
                        "<code>menuitem</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   510
                        "<code>meta</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   511
                        "<code>param</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   512
                        "<code>source</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   513
                        "<code>track</code>",
a00491801887 Fixed list of void elements and link to HTML5.
travil
parents: 19
diff changeset
   514
                        "<code>wbr</code>";
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   515
                        then append the following to <var>markup</var>, in order:
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   516
                        <ol>
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   517
                            <li>"<code> </code>" (U+0020 SPACE);
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   518
                            <li>"<code>/</code>" (U+002F SOLIDUS);
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   519
                        </ol>
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   520
                        and set the <var>skip end tag</var> flag to <code>true</code>.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   521
                    <li>If <var>ns</var> is not the <a title="html-ns">HTML namespace</a>,
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   522
                        and the <var>node</var>'s list of 
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   523
                        <a title="concept-tree-child" data-spec="DOM4" class="externalDFN">children</a>
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   524
                        is empty, then append "<code>/</code>" (U+002F SOLIDUS) to <var>markup</var>
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   525
                        and set the <var>skip end tag</var> flag to <code>true</code>.
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   526
                    <li>Append "<code>&gt;</code>" (U+003E GREATER-THAN SIGN) to <var>markup</var>.
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   527
                    <li>If the value of <var>skip end tag</var> is <code>true</code>, then return 
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   528
                        the value of <var>markup</var> and skip the remaining steps. The 
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   529
                        <var>node</var> is a leaf-node.
53
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   530
                    <li>If <var>ns</var> is the <a title="html-ns">HTML namespace</a>, and the <var>node</var>'s 
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   531
                        <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   532
                        matches the string "<code>template</code>", then this is a 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   533
                        <code><a title="the-template-element" data-spec="HTML5" class="externalDFN">template</a></code> element. 
53
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   534
                        Append to <var>markup</var> the result of running the 
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   535
                        <a title="concept-xml-serialization-algorithm">XML serialization algorithm</a> on the 
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   536
                        <a title="the-template-element" data-spec="HTML5" class="externalDFN">template</a> element's  
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   537
                        <a title="template-contents" data-spec="HTML5" class="externalDFN">template contents</a>
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   538
                        (a <code><a title="interface-documentfragment" data-spec="DOM4" class="externalDFN">DocumentFragment</a></code>),
53
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   539
                        providing the value of <var>inherited ns</var> for the 
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   540
                        <a title="concept-context-namespace">context namespace</a>,
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   541
                        <var>map</var> for the <a title="concept-namespace-prefix-map">namespace prefix map</a>,
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   542
                        <var>prefix index</var> for the 
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   543
                        <a title="concept-generated-prefix">generated namespace prefix index</a>, and the value
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   544
                        of the <var>require well-formed</var> flag. <span class="note">This allows 
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   545
                        <a title="template-contents" data-spec="HTML5" class="externalDFN">template content</a> to
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   546
                        round-trip , given the rules for
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   547
                        <a title="parsing-xhtml-documents" data-spec="HTML5" class="externalDFN">parsing XHTML documents</a>
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   548
                        [[HTML5]].</span>
619b91c88dc8 Fix bug 25180: Handle <template> element serialization
travil
parents: 52
diff changeset
   549
                    <li>Otherwise, append to <var>markup</var> the result of running the  
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   550
                        <a title="concept-xml-serialization-algorithm">XML serialization algorithm</a> on each 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   551
                        of <var>node</var>'s
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   552
                        <a title="concept-tree-child" data-spec="DOM4" class="externalDFN">children</a>,
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   553
                        in order, providing the value of <var>inherited ns</var> for the 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   554
                        <a title="concept-context-namespace">context namespace</a>,
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   555
                        <var>map</var> for the <a title="concept-namespace-prefix-map">namespace prefix map</a>,
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   556
                        <var>prefix index</var> for the 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   557
                        <a title="concept-generated-prefix">generated namespace prefix index</a>, and the value
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   558
                        of the <var>require well-formed</var> flag.
36
393c42a44e7f Fix Bug 25062, and some cleanup of the Element serialization algorithm
travil@microsoft.com
parents: 35
diff changeset
   559
                    <li>Append the following to <var>markup</var>, in order:
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   560
                        <ol>
37
c80b719c8211 Correction to the namespace prefix matching sub-steps--they must only consider real XMLNS attributes.
travil@microsoft.com
parents: 36
diff changeset
   561
                            <li>"<code>&lt;/</code>" (U+003C LESS-THAN SIGN, U+002F SOLIDUS);
c80b719c8211 Correction to the namespace prefix matching sub-steps--they must only consider real XMLNS attributes.
travil@microsoft.com
parents: 36
diff changeset
   562
                            <li>The value of <var>qualified name</var>;
c80b719c8211 Correction to the namespace prefix matching sub-steps--they must only consider real XMLNS attributes.
travil@microsoft.com
parents: 36
diff changeset
   563
                            <li>"<code>&gt;</code>" (U+003E GREATER-THAN SIGN).
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   564
                        </ol>
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   565
                    <li>Return the value of <var>markup</var>.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   566
                </ol>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   567
51
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   568
            <dt><code><a title="interface-document" data-spec="DOM4" class="externalDFN">Document</a></code>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   569
            <dd>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   570
                <p>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   571
                    <code>true</code>), and this <var>node</var> has no 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   572
                    <code><a title="dom-document-documentelement" data-spec="HTML5" class="externalDFN">documentElement</a></code>
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   573
                    (the <code><a title="dom-document-documentelement" data-spec="HTML5" class="externalDFN">documentElement</a></code>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   574
                    attribute's value is <code>null</code>), then <a title="concept-algorithm-exception">throw an 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   575
                    exception</a>; the serialization of this <var>node</var> would not be a well-formed document.
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   576
                <p>Otherwise, run the following steps:
21
75b83ca5f00c Fix Document XML serialization.
travil
parents: 20
diff changeset
   577
                <ol>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   578
                    <li>Let <var>serialized document</var> be an empty string.
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   579
                    <li>Append to <var>serialized document</var> the string produced by running the steps to 
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
   580
                        <a title="concept-serialize-doctype">produce a DocumentType serialization</a>
21
75b83ca5f00c Fix Document XML serialization.
travil
parents: 20
diff changeset
   581
                        of <var>node</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   582
                        <code><a title="dom-document-doctype" data-spec="HTML5" class="externalDFN">doctype</a></code>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   583
                        attribute provided the <var>require well-formed</var> flag if <var>node</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   584
                        <code><a title="dom-document-doctype" data-spec="HTML5" class="externalDFN">doctype</a></code>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   585
                        attribute is not <code>null</code>.
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   586
                    <li>For each
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   587
                        <a title="concept-tree-child" data-spec="DOM4" class="externalDFN">child</a> of 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   588
                        <var>node</var>, in order, run the 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   589
                        <a title="concept-xml-serialization-algorithm">XML serialization algorithm</a>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   590
                        on the <var>child</var> given a <a title="concept-context-namespace">context namespace</a>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   591
                        <var>namespace</var>, a <a title="concept-namespace-prefix-map">namespace prefix map</a>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   592
                        <var>prefix map</var>, a reference to a <a title="concept-generated-prefix">generated 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   593
                        namespace prefix index</a> <var>prefix index</var>, flag <var>require well-formed</var>, and
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   594
                        append the result to <var>serialized document</var>.
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   595
                    <li>Return the value of <var>serialized document</var>.
21
75b83ca5f00c Fix Document XML serialization.
travil
parents: 20
diff changeset
   596
                </ol>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   597
51
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   598
            <dt><code><a title="interface-comment" data-spec="DOM4" class="externalDFN">Comment</a></code>
32
f4430fb3b150 Sync-up to the Living Specification's changes:
travil
parents: 31
diff changeset
   599
            <dd>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   600
                <p>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   601
                    <code>true</code>), and <var>node</var>'s
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   602
                    <code><a title="dom-characterdata-data" data-spec="DOM4" class="externalDFN">data</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   603
                    contains characters that are not matched by the XML <code>Char</code> production [[XML10]] or
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   604
                    contains "<code>--</code>" (two adjacent U+002D HYPHEN-MINUS characters) or that ends with 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   605
                    a "<code>-</code>" (U+002D HYPHEN-MINUS) character, then 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   606
                    <a title="concept-algorithm-exception">throw an exception</a>; the serialization of this 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   607
                    <var>node</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   608
                    <code><a title="dom-characterdata-data" data-spec="DOM4" class="externalDFN">data</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   609
                    would not be well-formed.
32
f4430fb3b150 Sync-up to the Living Specification's changes:
travil
parents: 31
diff changeset
   610
                <p>Return the concatenation of "<code>&lt;!--</code>", <var>node</var>'s
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   611
                <code><a title="dom-characterdata-data" data-spec="DOM4" class="externalDFN">data</a></code>, and
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   612
                "<code>--></code>".
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   613
47
1920f7b853a1 Fix bug 23936: [LC Comment] Source reference to DOM L2 Core
travil
parents: 46
diff changeset
   614
            <!-- Removing CDATA Serialization steps as this interface type is removed from DOM4:
14
edebbe3facb6 Add support for CDATA serializations in DOM (for XML and programmatic creation).
travil
parents: 13
diff changeset
   615
            <dt><code><a title="cdata" data-spec="DOML2" class="externalDFN">CDATASection</a></code>
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   616
            <dd><ol>
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   617
                <li>Let <var>markup</var> be the concatenation of "<code>&lt;![CDATA[</code>", 
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   618
                    <var>node</var>'s <code><a title="dom-characterdata-data" data-spec="DOM4" 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   619
                    class="externalDFN">data</a></code>, and "<code>]]></code>".
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   620
                <li>Return <var>markup</var>.
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   621
              </ol>
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   622
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   623
              <p class=note>CDATASection objects may be created by the historical 
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   624
            <code>document.createCDATASection</code> API, or as a result of parsing an
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   625
            <a title="xml-document" data-spec="DOM4" class="externalDFN">XML document</a>.
47
1920f7b853a1 Fix bug 23936: [LC Comment] Source reference to DOM L2 Core
travil
parents: 46
diff changeset
   626
            -->
1920f7b853a1 Fix bug 23936: [LC Comment] Source reference to DOM L2 Core
travil
parents: 46
diff changeset
   627
            
51
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   628
            <dt><code><a title="interface-text" data-spec="DOM4" class="externalDFN">Text</a></code>
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   629
            <dd><ol>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   630
                <li>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   631
                    <code>true</code>), and <var>node</var>'s
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   632
                    <code><a title="dom-characterdata-data" data-spec="DOM4" class="externalDFN">data</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   633
                    contains characters that are not matched by the XML <code>Char</code> production [[XML10]], 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   634
                    then <a title="concept-algorithm-exception">throw an exception</a>; the serialization of this 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   635
                    <var>node</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   636
                    <code><a title="dom-characterdata-data" data-spec="DOM4" class="externalDFN">data</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   637
                    would not be well-formed.
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   638
                <li>Let <var>markup</var> be <var>node</var>'s
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   639
                <code><a title="dom-characterdata-data" data-spec="DOM4" class="externalDFN">data</a></code>.
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   640
                
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   641
                <li>Replace any occurrences of "<code>&amp;</code>" in <var>markup</var> by
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   642
                "<code>&amp;amp;</code>".
14
edebbe3facb6 Add support for CDATA serializations in DOM (for XML and programmatic creation).
travil
parents: 13
diff changeset
   643
                
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   644
                <li>Replace any occurrences of "<code>&lt;</code>" in <var>markup</var> by
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   645
                "<code>&amp;lt;</code>".
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   646
                
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   647
                <li>Replace any occurrences of "<code>&gt;</code>" in <var>markup</var> by
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   648
                "<code>&amp;gt;</code>".
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   649
                
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   650
                <li>Return <var>data</var>.
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   651
              </ol>
51
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   652
            <dt><code><a title="interface-documentfragment" data-spec="DOM4" class="externalDFN">DocumentFragment</a></code>
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   653
            <dd><ol>
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   654
                <li>Let <var>markup</var> the empty string.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   655
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   656
                <li>For each
43
a702e4acefbf Update the DocumentFragment call to the XML Serilizer to provide the necessary
travil
parents: 42
diff changeset
   657
                    <a title="concept-tree-child" data-spec="DOM4" class="externalDFN">child</a> of <var>node</var>, 
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   658
                    in order, run the <a title="concept-xml-serialization-algorithm">XML serialization algorithm</a>
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   659
                    on the <var>child</var> given 
43
a702e4acefbf Update the DocumentFragment call to the XML Serilizer to provide the necessary
travil
parents: 42
diff changeset
   660
                    a <a title="concept-context-namespace">context namespace</a> <var>namespace</var>, a
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   661
                    <a title="concept-namespace-prefix-map">namespace prefix map</a> <var>prefix map</var>,
43
a702e4acefbf Update the DocumentFragment call to the XML Serilizer to provide the necessary
travil
parents: 42
diff changeset
   662
                    a reference to a <a title="concept-generated-prefix">generated namespace prefix index</a> 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   663
                    <var>prefix index</var>, and flag <var>require well-formed</var>. Concatenate the result 
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
   664
                    to <var>markup</var>.
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   665
                <li>Return <var>markup</var>.
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   666
              </ol>
51
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   667
              
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   668
            <dt><code><a title="interface-documenttype" data-spec="DOM4" class="externalDFN">DocumentType</a></code>
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
   669
            <dd>Run the steps to <a title="concept-serialize-doctype">produce a DocumentType 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   670
                serialization</a> of <var>node</var> given the <a title="concept-well-formed">require well-formed</a>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   671
                flag, and return the string this produced.
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   672
            
51
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   673
            <dt><code><a title="interface-processinginstruction" data-spec="DOM4" class="externalDFN">ProcessingInstruction</a></code>
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   674
            <dd><ol>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   675
                <li>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   676
                    <code>true</code>), and <var>node</var>'s
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   677
                    <code><a title="dom-processinginstruction-target" data-spec="DOM4" class="externalDFN">target</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   678
                    contains a "<code>:</code>" (U+003A COLON) character or is an 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   679
                    <a data-spec="DOM4" class="externalDFN" title="ascii-case-insensitive">ASCII case-insensitive</a>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   680
                    match for the string "<code>xml</code>", then <a title="concept-algorithm-exception">throw an 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   681
                    exception</a>; the serialization of this <var>node</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   682
                    <code><a title="dom-processinginstruction-target" data-spec="DOM4" class="externalDFN">target</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   683
                    would not be well-formed.
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   684
                <li>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   685
                    <code>true</code>), and <var>node</var>'s
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   686
                    <code><a title="dom-characterdata-data" data-spec="DOM4" class="externalDFN">data</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   687
                    contains characters that are not matched by the XML <code>Char</code> production [[XML10]] or
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   688
                    contains the string "<code>?></code>" (U+003F QUESTION MARK, U+003E GREATER-THAN SIGN),
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   689
                    then <a title="concept-algorithm-exception">throw an exception</a>; the serialization of this 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   690
                    <var>node</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   691
                    <code><a title="dom-characterdata-data" data-spec="DOM4" class="externalDFN">data</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   692
                    would not be well-formed.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   693
                <li>Let <var>markup</var> be the concatenation of the following, in order:
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   694
                <ol>
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   695
                    <li>"<code>&lt;?</code>" (U+003C LESS-THAN SIGN, U+003F QUESTION MARK);
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   696
                    <li>The value of <var>node</var>'s <code><a title="dom-processinginstruction-target" 
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   697
                        data-spec="DOM4" class="externalDFN">target</a></code>;
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   698
                    <li>"<code> </code>" (U+0020 SPACE);
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   699
                    <li>The value of <var>node</var>'s <code><a title="dom-characterdata-data" 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   700
                        data-spec="DOM4" class="externalDFN">data</a></code>;
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   701
                    <li>"<code>?></code>" (U+003F QUESTION MARK, U+003E GREATER-THAN SIGN).
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   702
                </ol>
15
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   703
                <li>Return <var>markup</var>.
072801890ccd Add support for DOCTYPE serialization on XML docs. Fixed an error with Text in
travil
parents: 14
diff changeset
   704
              </ol>
51
562246d9b452 Fix bug 25244: What do Attr objects serialize?
travil
parents: 50
diff changeset
   705
              
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   706
        </dl>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   707
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
   708
        <p>To <dfn title="concept-serialize-doctype">produce a DocumentType serialization</dfn> of a
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   709
            <code><a title="node" data-spec="DOM4" class="externalDFN">Node</a></code> <var>node</var>, given a 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   710
            <a title="concept-well-formed">require well-formed</a> flag, the user agent must return 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   711
            the result of the following algorithm:</p>
16
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   712
                
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   713
        <ol>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   714
            <li>If the <a title="concept-well-formed">require well-formed</a> flag is <code>true</code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   715
                and the <var>node</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   716
                <code><a title="dom-documenttype-publicid" data-spec="DOM4" class="externalDFN">publicId</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   717
                attribute contains characters that are not matched by the XML <code>PubidChar</code> production 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   718
                [[XML10]], then <a title="concept-algorithm-exception">throw an exception</a>; the serialization 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   719
                of this <var>node</var> would not be a well-formed document type declaration.
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   720
            <li>If the <a title="concept-well-formed">require well-formed</a> flag is <code>true</code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   721
                and the <var>node</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   722
                <code><a title="dom-documenttype-systemid" data-spec="DOM4" class="externalDFN">systemId</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   723
                attribute contains characters that are not matched by the XML <code>Char</code> production 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   724
                [[XML10]] or that contains both a "<code>"</code>" (U+0022 QUOTATION MARK) and a "<code>'</code>" 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   725
                (U+0027 APOSTROPHE), then <a title="concept-algorithm-exception">throw an exception</a>; the 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   726
                serialization of this <var>node</var> would not be a well-formed document type declaration.
16
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   727
            <li>Let <var>markup</var> be an empty string.
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   728
            <li>Append the string "<code>&lt;!DOCTYPE</code>" to <var>markup</var>.
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   729
            <li>Append "<code> </code>" (U+0020 SPACE) to <var>markup</var>.
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   730
            <li>Append the value of the <var>node</var>'s 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   731
                <code><a title="dom-documenttype-name" data-spec="DOM4" class="externalDFN">name</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   732
                attribute to <var>markup</var>. For a <var>node</var> belonging to an
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   733
                <a title="html-document" data-spec="DOM4" class="externalDFN">HTML document</a>,
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   734
                the value will be all lowercase.
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   735
            <li>If the <var>node</var>'s 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   736
                <code><a title="dom-documenttype-publicid" data-spec="DOM4" class="externalDFN">publicId</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   737
                is not the empty string then append the following, in order, to <var>markup</var>:
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   738
                <ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   739
                    <li>"<code> </code>" (U+0020 SPACE);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   740
                    <li>The string "<code>PUBLIC</code>";
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   741
                    <li>"<code> </code>" (U+0020 SPACE);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   742
                    <li>"<code>"</code>" (U+0022 QUOTATION MARK);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   743
                    <li>The value of the <var>node</var>'s 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   744
                        <code><a title="dom-documenttype-publicid" data-spec="DOM4" class="externalDFN">publicId</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   745
                        attribute;
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   746
                    <li>"<code>"</code>" (U+0022 QUOTATION MARK);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   747
                </ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   748
            </li>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   749
            <li>If the <var>node</var>'s 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   750
                <code><a title="dom-documenttype-systemid" data-spec="DOM4" class="externalDFN">systemId</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   751
                is not the empty string and the <var>node</var>'s 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   752
                <code><a title="dom-documenttype-publicid" data-spec="DOM4" class="externalDFN">publicId</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   753
                is set to the empty string, then append the following, in order, to <var>markup</var>:
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   754
                <ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   755
                    <li>"<code> </code>" (U+0020 SPACE);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   756
                    <li>The string "<code>SYSTEM</code>";
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   757
                </ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   758
            </li>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   759
            <li>If the <var>node</var>'s 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   760
                <code><a title="dom-documenttype-systemid" data-spec="DOM4" class="externalDFN">systemId</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   761
                is not the empty string then append the following, in order, to <var>markup</var>:
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   762
                <ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   763
                    <li>"<code> </code>" (U+0020 SPACE);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   764
                    <li>"<code>"</code>" (U+0022 QUOTATION MARK);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   765
                    <li>The value of the <var>node</var>'s 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   766
                        <code><a title="dom-documenttype-systemid" data-spec="DOM4" class="externalDFN">systemId</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   767
                        attribute;
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   768
                    <li>"<code>"</code>" (U+0022 QUOTATION MARK);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   769
                </ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   770
            </li>
47
1920f7b853a1 Fix bug 23936: [LC Comment] Source reference to DOM L2 Core
travil
parents: 46
diff changeset
   771
            <!-- Removing internalSubset serialization steps as this property is not supported by DOM4. Also,
1920f7b853a1 Fix bug 23936: [LC Comment] Source reference to DOM L2 Core
travil
parents: 46
diff changeset
   772
                optional requirements don't help improve interoperability:
16
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   773
            <li>Optional: if the <var>node</var> has an (historical) 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   774
                <code><a title="ID-Core-DocType-internalSubset" data-spec="DOM3" class="externalDFN">internalSubset</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   775
                and the
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   776
                <code><a title="ID-Core-DocType-internalSubset" data-spec="DOM3" class="externalDFN">internalSubset</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   777
                attribute's value is a non-empty string, then append the following,
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   778
                in order, to <var>markup</var>:
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   779
                <ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   780
                    <li>"<code> </code>" (U+0020 SPACE);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   781
                    <li>"<code>[</code>" (U+005B LEFT SQUARE BRACKET);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   782
                    <li>The value of the <var>node</var>'s 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   783
                        <code><a title="ID-Core-DocType-internalSubset" data-spec="DOM3" class="externalDFN">internalSubset</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   784
                        attribute;
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   785
                    <li>"<code>]</code>" (U+005D RIGHT SQUARE BRACKET);
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   786
                </ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   787
                <p class=note>A <var>node</var> belonging to an
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   788
                   <a title="html-document" data-spec="DOM4" class="externalDFN">HTML document</a>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   789
                   will never have an 
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   790
                   <code><a title="ID-Core-DocType-internalSubset" data-spec="DOM3" class="externalDFN">internalSubset</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   791
                   because any <code><a title="ID-Core-DocType-internalSubset" data-spec="DOM3" class="externalDFN">internalSubset</a></code>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   792
                   markup is ignored by the parser.</p>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   793
            </li>
47
1920f7b853a1 Fix bug 23936: [LC Comment] Source reference to DOM L2 Core
travil
parents: 46
diff changeset
   794
            -->
16
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   795
            <li>Append "<code>&gt;</code>" (U+003E GREATER-THAN SIGN) to <var>markup</var>.
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   796
        </ol>
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   797
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   798
        <p>To <dfn title="concept-record-namespace-info">record the namespace information</dfn> for an 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   799
            <code><a title="element" data-spec="DOM4" class="externalDFN">Element</a></code> <var>element</var>, given a 
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   800
            <a title="concept-namespace-prefix-map">namespace prefix map</a> <var>map</var>, an
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   801
            <var>element prefixes list</var> (initially empty), and a <var>duplicate prefix 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   802
            definition</var> reference, the user agent must run the following steps:
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   803
        <ol>
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   804
            <li>Let <var>default namespace attr value</var> be <code>null</code>.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   805
            <li>For each <a title="concept-attribute" data-spec="DOM4" class="externalDFN">attribute</a>
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   806
                <var>attr</var> in <var>element</var>'s
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   807
                <code><a title="dom-element-attributes" data-spec="DOM4" class="externalDFN">attributes</a></code>,
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   808
                in order:
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   809
            <ol>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   810
                <p class="note">The following conditional steps add namespace prefixes
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   811
                    into the <var>element prefixes list</var> and add or replace them in the <var>map</var>. 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   812
                    Only attributes in the <a title="xmlns-ns">XMLNS namespace</a> are
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   813
                    considered (e.g., attributes made to look like namespace declarations via 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   814
                    <code><a title="dom-element-setattribute" data-spec="DOM4" 
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   815
                    class="externalDFN">setAttribute</a>(<em>"xmlns:pretend-prefix"</em>,
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   816
                    <em>"pretend-namespace"</em>)</code> are not included).</p>
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   817
                <li>Let <var>attribute namespace</var> be the <var>attr</var>'s  
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   818
                    <code><a title="dom-attribute-namespaceuri" data-spec="DOM4" class="externalDFN">namespaceURI</a></code>
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   819
                    value.
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   820
                <li>Let <var>attribute prefix</var> be the value of <var>attr</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   821
                        <code><a title="dom-attribute-prefix" data-spec="DOM4" class="externalDFN">prefix</a></code>.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   822
                <li>If the <var>attribute namespace</var> is the <a title="xmlns-ns">XMLNS namespace</a>, then:
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   823
                <ol>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   824
                    <li>If <var>attribute prefix</var> is <code>null</code>, then <var>attr</var> is a 
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   825
                        default namespace declaration. Set the <var>default namespace attr value</var> to 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   826
                        <var>attr</var>'s <code><a title="dom-attribute-value" data-spec="DOM4"
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   827
                        class="externalDFN">value</a></code> and stop running these steps, returning to the 
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   828
                        top of the loop to visit the next attribute.
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   829
                    <li>Otherwise, the <var>attribute prefix</var> is not <code>null</code> and <var>attr</var>
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   830
                        is a namespace prefix definition. Run the following steps:
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   831
                    <ol>
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   832
                        <li>Let <var>prefix definition</var> be the value of <var>attr</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   833
                            <code><a title="dom-attribute-localname" data-spec="DOM4" class="externalDFN">localName</a></code>.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   834
                        <li>Let <var>namespace definition</var> be the value of <var>attr</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   835
                            <code><a title="dom-attribute-value" data-spec="DOM4" class="externalDFN">value</a></code>.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   836
                        <li>If a key matching the value of <var>namespace definition</var> already exists in
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   837
                            <var>map</var>, and the key's value matches <var>prefix definition</var>, then 
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   838
                            this is a duplicate namespace prefix definition. Set the value of <var>duplicate 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   839
                            prefix definition</var> to <var>prefix definition</var>.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   840
                        <li>Otherwise, if the key matching the value of <var>namespace definition</var> already 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   841
                            exists in <var>map</var>, but the key's value does not match <var>prefix definition</var>,
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   842
                            then update the key's value to be <var>prefix definition</var>.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   843
                        <li>Otherwise, no key matching the value of <var>namespace definition</var> exists;
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   844
                            append to <var>map</var> a new key <var>namespace definition</var>
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   845
                            whose key value is the <var>prefix definition</var>.
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   846
                        <li>Append the value of <var>prefix definition</var> to <var>element prefixes list</var>.
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   847
                    </ol>
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   848
                </ol>
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   849
            </ol>
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   850
            <li>Return the value of <var>default namespace attr value</var>.
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   851
        </ol>
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   852
        
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   853
        <p>To <dfn title="concept-generate-prefix">generate a prefix</dfn> given a 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   854
            <a title="concept-namespace-prefix-map">namespace prefix map</a> <var>map</var>, a 
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   855
            string <var>new namespace</var>, and a reference to a
38
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   856
            <a title="concept-generated-prefix">generated namespace prefix index</a> <var>prefix
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   857
            index</var>, the user agent must run the following steps:
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   858
        <ol>
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   859
            <li>Let <var>generated prefix</var> be the concatenation of the string <code>"ns"</code> and
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   860
                the current numerical value of <var>prefix index</var>.
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   861
            <li>Let the value of <var>prefix index</var> be incremented by one.
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   862
            <li>Append to <var>map</var> a new key <var>new namespace</var> whose key value is the 
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   863
                <var>generated prefix</var>.
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   864
            <li>Return the value of <var>generated prefix</var>.
fb9edcfb8f5f Rewrite of the Element serializing XML serializer algorithm. Should be much closer
travil
parents: 37
diff changeset
   865
        </ol>
16
809c9f8a41a9 Factored the DOCTYPE serialization algorithm to additionally support HTML docs
travil
parents: 15
diff changeset
   866
        
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
   867
        <p>The <dfn title="concept-serialize-xml-attributes">XML serialization of the attributes</dfn>
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   868
            of an <code><a title="concept-element" data-spec="DOM4" class="externalDFN">Element</a></code>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   869
            <var>element</var> together with a <a title="concept-namespace-prefix-map">namespace prefix 
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   870
            map</a> <var>map</var>, a <a title="concept-generated-prefix">generated prefix index</a> 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   871
            <var>prefix index</var> reference, a flag <var>ignore namespace definition attribute</var>, a
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   872
            <var>duplicate prefix definition</var> value, and a flag <var>require well-formed</var>,
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   873
            is the result of the following algorithm:
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   874
        <ol>
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   875
            <li>Let <var>result</var> be the empty string.
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   876
            <li>Let <var>localname set</var> be a new empty 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   877
                <dfn title="concept-namespace-localname-set">namespace localname set</dfn>. This <var>localname
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   878
                set</var> will contain tuples of unique attribute 
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   879
                <code><a title="dom-attribute-namespaceuri" data-spec="DOM4" class="externalDFN">namespaceURI</a></code>
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   880
                and <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   881
                pairs, and is populated as each <var>attr</var> is processed.
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   882
                <span class="note">This set is used to [optionally] enforce the well-formed constraint that an 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   883
                element cannot have two attributes with the same 
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   884
                <code><a title="dom-attribute-namespaceuri" data-spec="DOM4" class="externalDFN">namespaceURI</a></code>
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   885
                and <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>. 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   886
                This can occur when two otherwise identical attributes on the same element differ only by their 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   887
                prefix values.</span>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   888
            <li>For each <a title="concept-attribute" data-spec="DOM4" class="externalDFN">attribute</a>
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   889
                <var>attr</var> in <var>element</var>'s
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   890
                <code><a title="dom-element-attributes" data-spec="DOM4" class="externalDFN">attributes</a></code>,
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   891
                in order:
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   892
            <ol>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   893
                <li>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   894
                    <code>true</code>), and the <var>localname set</var> contains a tuple whose values match those 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   895
                    of a new tuple consisting of <var>attr</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   896
                    <code><a title="dom-attribute-namespaceuri" data-spec="DOM4" class="externalDFN">namespaceURI</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   897
                    attribute and <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   898
                    attribute, then <a title="concept-algorithm-exception">throw an exception</a>; the serialization of this 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   899
                    <var>attr</var> would fail to produce a well-formed element serialization.
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   900
                <li>Create a new tuple consisting of <var>attr</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   901
                    <code><a title="dom-attribute-namespaceuri" data-spec="DOM4" class="externalDFN">namespaceURI</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   902
                    attribute and <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   903
                    attribute, and add it to the <var>localname set</var>.
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   904
                <li>Let <var>attribute namespace</var> be the <var>attr</var>'s  
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   905
                    <code><a title="dom-attribute-namespaceuri" data-spec="DOM4" class="externalDFN">namespaceURI</a></code>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   906
                    value.
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   907
                <!-- Check for an unregistered attribute namespace, and if so, serialize a definition for it -->
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   908
                <li>Let <var>candidate prefix</var> be <code>null</code>.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   909
                <li>If <var>attribute namespace</var> is not <code>null</code>, then run these sub-steps:
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   910
                <ol>
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   911
                    <li>If the value of <var>attribute namespace</var> is the 
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   912
                        <a title="xmlns-ns">XMLNS namespace</a> and either the <var>attr</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   913
                        <code><a title="dom-attribute-prefix" data-spec="DOM4" class="externalDFN">prefix</a></code>
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   914
                        is <code>null</code> and the <var>ignore namespace definition 
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   915
                        attribute</var> flag is <code>true</code> or the <var>attr</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   916
                        <code><a title="dom-attribute-prefix" data-spec="DOM4" class="externalDFN">prefix</a></code>
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   917
                        is not <code>null</code> and the <var>attr</var>'s 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   918
                        <code><a title="concept-attribute-localname" data-spec="DOM4" class="externalDFN">localName</a></code>
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   919
                        matches the value of <var>duplicate prefix definition</var>, then stop running 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   920
                        these steps and return to the loop to visit the next attribute.
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   921
                    <li>Otherwise, if there exists a key in <var>map</var> that matches the value of <var>attribute 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   922
                        namespace</var>, then let <var>candidate prefix</var> be that key's value from the 
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   923
                        <var>map</var>.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   924
                    <li>Otherwise, there is no key matching <var>attribute namespace</var> in <var>map</var> and
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   925
                        the <var>attribute namespace</var> is not the <a title="xmlns-ns">XMLNS namespace</a>. 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   926
                        Run these steps:
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   927
                    <ol>
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   928
                        <li>Let <var>candidate prefix</var> be the result of 
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   929
                            <a title="concept-generate-prefix">generating a prefix</a> providing <var>map</var>, 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   930
                            <var>attribute namespace</var>, and <var>prefix index</var> as input.
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   931
                        <li>Append the following to <var>result</var>:
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   932
                        <ol>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   933
                            <li>"<code> </code>" (U+0020 SPACE);
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   934
                            <li>The string "<code>xmlns:</code>";
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   935
                            <li>The value of <var>candidate prefix</var>;
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   936
                            <li>"<code>="</code>" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   937
                            <li>The result of <a title="concept-serialize-attr-value">serializing an attribute value</a> 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   938
                                given <var>attribute namespace</var> and the 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   939
                                <a title="concept-well-formed">require well-formed</a> flag as input;
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   940
                            <li>"<code>"</code>" (U+0022 QUOTATION MARK).
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   941
                        </ol>
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   942
                    </ol>
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   943
                </ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   944
                <!-- A namespace prefix has been set by this point if it needed to be set -->
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   945
                <li>Append a "<code> </code>" (U+0020 SPACE) to <var>result</var>.
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   946
                <li>If <var>candidate prefix</var> is not <code>null</code>, then append to <var>result</var>
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   947
                    the concatenation of <var>candidate prefix</var> with "<code>:</code>" (U+003A COLON).
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   948
                <!-- Check for well-formed localName -->
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   949
                <li>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   950
                    <code>true</code>), and this <var>attr</var>'s 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   951
                    <code><a title="dom-element-localname" data-spec="DOM4" class="externalDFN">localName</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   952
                    attribute contains the character "<code>:</code>" (U+003A COLON) or does not match the XML 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   953
                    <code>Name</code> production [[XML10]] or equals "<code>xmlns</code>" and <var>attribute 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   954
                    namespace</var> is <code>null</code>, then <a title="concept-algorithm-exception">throw an 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   955
                    exception</a>; the serialization of this <var>attr</var> would not be a well-formed attribute.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   956
                <!-- Write out the standard attribute -->
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   957
                <li>Append the following strings to <var>result</var>:
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   958
                <ol>
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   959
                    <li>The value of <var>attr</var>'s
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
   960
                        <code><a title="concept-attribute-localname" data-spec="DOM4" class="externalDFN">localName</a></code>;
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   961
                    <li>"<code>="</code>" (U+003D EQUALS SIGN, U+0022 QUOTATION MARK);
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   962
                    <li>The result of <a title="concept-serialize-attr-value">serializing an attribute value</a> 
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   963
                        given <var>attr</var>'s
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   964
                        <code><a title="concept-attribute-value" data-spec="DOM4" class="externalDFN">value</a></code>
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   965
                        attribute and the <a title="concept-well-formed">require well-formed</a> flag as input;
39
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   966
                    <li>"<code>"</code>" (U+0022 QUOTATION MARK).
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   967
                </ol>
1860a8d798cf Cleanup of the Element and Processing Instruction parts of algorithm, plus some
travil
parents: 38
diff changeset
   968
            </ol>
18
15a9ba955a3a Expanded the XML Serialization algorithm for Elements (and a sligt enhancement
travil
parents: 17
diff changeset
   969
            <li>Return <var>result</var>.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   970
        </ol>
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   971
        
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   972
        <p>To <dfn title="concept-serialize-attr-value">serialize an attribute value</dfn> given an 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   973
            <var>attribute value</var> and <a title="concept-well-formed">require well-formed</a> flag,
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   974
            the user agent must run the following steps:
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   975
        <ol>
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   976
            <li>If the <a title="concept-well-formed">require well-formed</a> flag is set (its value is 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   977
                <code>true</code>), and <var>attribute value</var> contains characters that are not matched 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   978
                by the XML <code>Char</code> production [[XML10]], then 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   979
                <a title="concept-algorithm-exception">throw an exception</a>; the serialization of this 
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
   980
                <var>attribute value</var> would fail to produce a well-formed element serialization.
42
fa768c710fba Algorithm Polish (variable re-names, prose clean-up and clarifying notes here and there).
travil
parents: 41
diff changeset
   981
            <li>If <var>attribute value</var> is <code>null</code>, then return the empty string.
41
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   982
            <li>Otherwise, <var>attribute value</var> is a string. Return <var>attribute value</var>,
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   983
                first replacing any occurrences of the following:
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   984
            <ol>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   985
                <li>"<code>&quot;</code>" with "<code>&amp;quot;</code>"
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   986
                <li>"<code>&amp;</code>" with "<code>&amp;amp;</code>"
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   987
                <li>"<code>&lt;</code>" with "<code>&amp;lt;</code>"
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   988
                <li>"<code>&gt;</code>" with "<code>&amp;gt;</code>"
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   989
            </ol>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   990
            <p class="note">This matches behavior present in browsers, and goes above
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   991
                and beyond the grammar requirement in the XML specification's AttValue
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   992
                production [[XML10]] by also replacing "<code>&gt;</code>" characters.</p>
f9b5a818ef99 Another update to the Element/Attribute serialization algorithm to fix recent
travil
parents: 40
diff changeset
   993
        </ol>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   994
    </section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   995
</section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   996
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   997
<section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   998
    <h1>The <code>DOMParser</code> interface</h1>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
   999
    
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1000
<pre class=extraidl>enum <span class=idlInterfaceID>SupportedType</span> {
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1001
    "text/html",
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1002
    "text/xml",
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1003
    "application/xml",
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1004
    "application/xhtml+xml",
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1005
    "image/svg+xml"
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1006
};</pre>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1007
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1008
    <p>The <dfn title="dom-domparser"><code>DOMParser()</code></dfn> constructor
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1009
    must return a new <code>DOMParser</code> object.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1010
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1011
    <dl class="idl" title="[Constructor] interface DOMParser">
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1012
        <dt>Document parseFromString(DOMString str, SupportedType type)</dt>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1013
        <dd>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1014
            <p>The
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1015
            <dfn title="dom-domparser-parsefromstring"><code>parseFromString(<var>str</var>, <var>type</var>)</code></dfn>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1016
            method must run these steps, depending on <var>type</var>:
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1017
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1018
            <dl class=switch>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1019
                <dt>"<code>text/html</code>"
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1020
                <dd>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1021
                <p>Parse <var>str</var> with an
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1022
                <code><a data-spec="HTML5" title="html-parser" class="externalDFN">HTML parser</a></code>, and return the newly
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1023
                created <a title="concept-document" data-spec="DOM4" class="externalDFN">document</a>.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1024
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1025
                <p>The <a data-spec="HTML5" title="scripting-flag" class="externalDFN">scripting flag</a> must be set to
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1026
                "disabled".
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1027
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1028
                <p class=note><code><a data-spec="HTML5" title="meta" class="externalDFN">meta</a></code> elements are not
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1029
                taken into account for the encoding used, as a Unicode stream is passed into
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1030
                the parser.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1031
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1032
                <p class=note><code><a data-spec="HTML5" title="script" class="externalDFN">script</a></code> elements get marked
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1033
                unexecutable and the contents of <code><a data-spec="HTML5" title="noscript" class="externalDFN">noscript</a></code>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1034
                get parsed as markup.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1035
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1036
                <dt>"<code>text/xml</code>"
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1037
                <dt>"<code>application/xml</code>"
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1038
                <dt>"<code>application/xhtml+xml</code>"
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1039
                <dt>"<code>image/svg+xml</code>"
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1040
                <dd>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1041
                <ol>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1042
                    <li>Parse <var>str</var> with a namespace-enabled
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1043
                    <code><a data-spec="HTML5" title="xml-parser" class="externalDFN">XML parser</a></code>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1044
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1045
                    <li>If the previous step didn't return an error, return the newly
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1046
                    created <a title="concept-document" data-spec="DOM4" class="externalDFN">document</a>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1047
                    and terminate these steps.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1048
56
b9d2104e193a Revert changelist 23 (0890bba5b66a) -- sigh.
travil
parents: 55
diff changeset
  1049
                    <!-- This seemed like a good idea, but isn't web compatible, unfortunately.
23
0890bba5b66a Resolved issue of DOMParser-parsed document properties, and switched DOMParser's
travil
parents: 22
diff changeset
  1050
                    <li>Otherwise, throw a 
55
49c41bbec2b4 Consistency pass--ensure all external refs that are proper attributes are linked
travil
parents: 54
diff changeset
  1051
                    <code><a data-spec="DOM4" title="domexception" class="externalDFN">DOMException</a></code> 
56
b9d2104e193a Revert changelist 23 (0890bba5b66a) -- sigh.
travil
parents: 55
diff changeset
  1052
                    with name <code>SyntaxError</code>. -->
23
0890bba5b66a Resolved issue of DOMParser-parsed document properties, and switched DOMParser's
travil
parents: 22
diff changeset
  1053
                    
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1054
                    <li>Let <var>document</var> be a newly-created
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1055
                    <code><a data-spec="DOM4" title="xmldocument" class="externalDFN">XMLDocument</a></code>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1056
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1057
                    <li>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1058
                    <p>Let <var>root</var> be a new
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1059
                    <code><a title="element" data-spec="DOM4" class="externalDFN">Element</a></code>, with its
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1060
                    <a title="concept-element-local-name" data-spec="DOM4" class="externalDFN">local name</a>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1061
                    set to "<code>parsererror</code>" and its
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1062
                    <a title="concept-element-namespace" data-spec="DOM4" class="externalDFN">namespace</a>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1063
                    set to
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1064
                    "<code>http://www.mozilla.org/newlayout/xml/parsererror.xml</code>".
56
b9d2104e193a Revert changelist 23 (0890bba5b66a) -- sigh.
travil
parents: 55
diff changeset
  1065
                    <!-- see https://bugzilla.mozilla.org/show_bug.cgi?id=45566 -->
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1066
                    <p>At this point user agents may
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1067
                    <a data-spec="DOM4" title="concept-node-append" class="externalDFN">append</a> nodes
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1068
                    to <var>root</var>, for example to describe the nature of the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1069
                    error.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1070
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1071
                    <li><a data-spec="DOM4" title="concept-node-append" class="externalDFN">Append</a>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1072
                    <var>root</var> to <var>document</var>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1073
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1074
                    <li>Return <var>document</var>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1075
                </ol>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1076
            </dl>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1077
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1078
            <p>In any case, the returned
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1079
            <a title="concept-document" data-spec="DOM4" class="externalDFN">document</a>'s
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1080
            <a title="concept-document"-content-type data-spec="DOM4" class="externalDFN">content type</a>
23
0890bba5b66a Resolved issue of DOMParser-parsed document properties, and switched DOMParser's
travil
parents: 22
diff changeset
  1081
            must be the <var>type</var> argument. Additionally, the 
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1082
            <a title="concept-document" data-spec="DOM4" class="externalDFN">document</a> must have a
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1083
            <a title="concept-document"-url data-spec="DOM4" class="externalDFN">URL</a> value equal to 
23
0890bba5b66a Resolved issue of DOMParser-parsed document properties, and switched DOMParser's
travil
parents: 22
diff changeset
  1084
            the URL of the 
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1085
            <a title="active-document" data-spec="HTML5" class="externalDFN">active document</a>, a 
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1086
            <a title="location" data-spec="HTML5" class="externalDFN">location</a> value of <code>null</code>.
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1087
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1088
            <p class=note>The returned
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1089
            <a title="concept-document" data-spec="DOM4" class="externalDFN">document</a>'s
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1090
            <a title="concept-document"-encoding data-spec="DOM4" class="externalDFN">encoding</a> is
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1091
            the default, UTF-8.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1092
        </dd>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1093
    </dl>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1094
</section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1095
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1096
<section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1097
    <h1>The <code>XMLSerializer</code> interface</h1>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1098
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1099
    <p>The <dfn title="dom-xmlserializer"><code>XMLSerializer()</code></dfn>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1100
    constructor must return a new <code>XMLSerializer</code> object.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1101
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1102
    <dl class="idl" title="[Constructor] interface XMLSerializer">
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1103
        <dt>DOMString serializeToString(Node root)</dt>
0
f39b5b437d3d The beginning.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents:
diff changeset
  1104
17
b1c206041ab9 Small consistency fix plus validation error fix.
travil
parents: 16
diff changeset
  1105
        <dd>The <code>serializeToString(<var>root</var>)</code>
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
  1106
        method must <a title="concept-serialize-xml">produce an XML serialization</a> of <var>root</var> passing 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
  1107
        a value of <code>false</code> for the <a title="concept-well-formed">require well-formed</a> parameter, and return the result.</dd>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1108
    </dl>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1109
</section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1110
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1111
<section>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1112
    <h1>Extensions to the <code><a title="element" data-spec="DOM4" class="externalDFN">Element</a></code> interface</h1>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1113
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1114
    <dl class="idl" title="partial interface Element">
11
ed0d76e9894d Processing WHATWG checkin:
travil
parents: 10
diff changeset
  1115
        <dt>[TreatNullAs=EmptyString] attribute DOMString innerHTML</dt>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1116
        <dd>
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1117
            <p>The <dfn title="dom-element-innerhtml"><code>innerHTML</code></dfn> IDL
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1118
            attribute represents the markup of the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1119
            <code><a title="element" data-spec="DOM4" class="externalDFN">Element</a></code>'s contents.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1120
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1121
            <dl class=domintro>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1122
                <!--doc.ih
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1123
                <dt><var>document</var> . <code title="dom-document-innerhtml">innerHTML</code> [ = <var>value</var> ]
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1124
                <dd>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1125
                <p>Returns a fragment of HTML or XML that represents the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1126
                <code><a title="document" data-spec="DOM4" class="externalDFN">Document</a></code>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1127
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1128
                <p>Can be set, to replace the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1129
                <code><a title="document" data-spec="DOM4" class="externalDFN">Document</a></code>'s contents with the result of
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1130
                parsing the given string.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1131
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1132
                <p>In the case of an <a title="xml-document" data-spec="DOM4" class="externalDFN">XML document</a>,
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1133
                will throw an
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1134
                <code><a data-spec="DOM4" title="domexception" class="externalDFN">DOMException</a></code> with name <code>InvalidStateError</code>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1135
                if the <code><a title="document" data-spec="DOM4" class="externalDFN">Document</a></code> cannot be serialized
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1136
                to XML, and a
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1137
                <code><a data-spec="DOM4" title="domexception" class="externalDFN">DOMException</a></code> with name <code>SyntaxError</code>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1138
                if the given string is not well-formed.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1139
                -->
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1140
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1141
                <dt><var>element</var> . <code title="dom-element-innerhtml">innerHTML</code> [ = <var>value</var> ]
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1142
                <dd>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1143
                <p>Returns a fragment of HTML or XML that represents the element's
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1144
                contents.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1145
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1146
                <p>Can be set, to replace the contents of the element with nodes
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1147
                parsed from the given string.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1148
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1149
                <p>In the case of an <a title="xml-document" data-spec="DOM4" class="externalDFN">XML document</a>,
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1150
                will throw a
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1151
                <code><a data-spec="DOM4" title="domexception" class="externalDFN">DOMException</a></code> with name <code>InvalidStateError</code>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1152
                if the <code><a title="element" data-spec="DOM4" class="externalDFN">Element</a></code> cannot be serialized
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1153
                to XML, and a
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1154
                <code><a data-spec="DOM4" title="domexception" class="externalDFN">DOMException</a></code> with name <code>SyntaxError</code>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1155
                if the given string is not well-formed.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1156
            </dl>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1157
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
  1158
            <p>On getting, return the result of invoking the 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
  1159
                <a title="concept-fragment-serializing-algorithm">fragment serializing algorithm</a> on the 
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
  1160
                <a title="context object">context object</a> providing <code>true</code> for the 
50
f3d96628e2b5 Fix bug 25168: Should XML Serialization be allowed to produce invalid XML?
travil
parents: 49
diff changeset
  1161
                <a title="concept-well-formed">require well-formed</a> flag (this might throw an exception 
49
bf16edd32039 Fix bug 25181: Enable the innerHTML and outerHTML getter calls to invoke the serialize steps directly
travil
parents: 47
diff changeset
  1162
                instead of returning a string).
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1163
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1164
            <p>On setting, these steps must be run:
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1165
            <ol>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1166
                <li>Let <var>fragment</var> be the result of invoking the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1167
                <a title="concept-parse-fragment">fragment parsing algorithm</a> with
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1168
                the new value as <var>markup</var>, and the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1169
                <a title="context object">context object</a> as the <var>context element</var>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1170
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1171
                <li><a data-spec="DOM4" title="concept-node-replace-all" class="externalDFN">Replace all</a>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1172
                with <var>fragment</var> within the <a title="context object">context object</a>.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1173
            </ol>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1174
        </dd>
0
f39b5b437d3d The beginning.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents:
diff changeset
  1175
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1176
        <!-- outerHTML -->
11
ed0d76e9894d Processing WHATWG checkin:
travil
parents: 10
diff changeset
  1177
        <dt>[TreatNullAs=EmptyString] attribute DOMString outerHTML</dt>
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1178
        <dd>
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1179
            <p>The <dfn title="dom-element-outerhtml"><code>outerHTML</code></dfn> IDL
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1180
            attribute represents the markup of the
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1181
            <code><a title="element" data-spec="DOM4" class="externalDFN">Element</a></code> and its contents.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1182
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1183
            <dl class=domintro>
34
f5458f389274 Applied consistent quoting around title attributes and lowercased all refs to
tleithea
parents: 33
diff changeset
  1184
              <dt><var>element</var> . <code title="dom-element-outerhtml">outerHTML</code> [ = <var>value</var> ]
1
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1185
              <dd>
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1186
                <p>Returns a fragment of HTML or XML that represents the element and its
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1187
                contents.
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1188
5cb52744fe44 Conversion to ReSpec and W3C editor's draft template.
travil@travil1.wingroup.windeploy.ntdev.microsoft.com
parents: 0
diff changeset
  1189
                &l