/[suikacvs]/markup/xml/xmlcc/xmlcc-work.en.html
Suika

Diff of /markup/xml/xmlcc/xmlcc-work.en.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.17 by wakaba, Sat Dec 1 12:19:41 2007 UTC revision 1.18 by wakaba, Sat Dec 1 14:32:30 2007 UTC
# Line 365  xml:base and xml:id specifications viola Line 365  xml:base and xml:id specifications viola
365  </ol>  </ol>
366    
367  <p>The algorithm  <p>The algorithm
368  <dfn id=algorithm-to-validate-a-ncname title="to validate an NCName">to  <dfn id=algorithm-to-validate-an-ncname title="to validate an NCName">to
369  validate an <code>NCName</code> (<dfn id=var-name><var>name</var></dfn>)</dfn>  validate an <code>NCName</code> (<dfn id=var-name><var>name</var></dfn>)</dfn>
370  is defined as following:</p>  is defined as following:</p>
371  <ol>  <ol>
372  <li class=ed>@@</li>  <li class=ed>@@</li>
373  </ol>  </ol>
374    
375  <p>To <dfn id=algorithm-to-validate-a-public-identifier title="validate a public identifier">validate  <p>To
376    <dfn id=algorithm-to-validate-a-public-identifier title="validate a public identifier">validate
377  a public identifier (<dfn id=var-pid><var>pid</var></dfn>)</dfn>, the  a public identifier (<dfn id=var-pid><var>pid</var></dfn>)</dfn>, the
378  algorithm below <em class=rfc2119>MUST</em> be used:</p>  following algorithm <em class=rfc2119>MUST</em> be used:</p>
379  <ol>  <ol>
380      <li>If <var>pid</var> is <code>null</code>, abort these steps.</li>
381    <li>If <var>pid</var> contains any character    <li>If <var>pid</var> contains any character
382    that is outside of the range of <code>#x20 | #xD | #xA |    that is outside of the range of <code>#x20 | #xD | #xA |
383    [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]</code><!-- @@ TODO: formal def -->,    [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]</code><!-- @@ TODO: formal def -->,
# Line 392  algorithm below <em class=rfc2119>MUST</ Line 394  algorithm below <em class=rfc2119>MUST</
394    <code class=char>U+0020</code> <code class=charname>SPACE</code> character    <code class=char>U+0020</code> <code class=charname>SPACE</code> character
395    immediately followed by another <code class=char>U+0020</code>    immediately followed by another <code class=char>U+0020</code>
396    <code class=charname>SPACE</code> character in <var>pid</var>, then it is a    <code class=charname>SPACE</code> character in <var>pid</var>, then it is a
397    <a href="#round-trip-error" id=rte-pubid-space><code>round-trip-error</code></a>.</li>    <a href="#round-trip-error" id=rte-pubid-space><code>round-trip-error</code></a>.
398      <span class=ed>Is this really a roundtripness problem?  XML spec
399      does only define the way to match public identifiers in fact, no
400      canonical form.</span></li>
401    <li class=ed>@@ Should we check formal-public-identifierness?</li>    <li class=ed>@@ Should we check formal-public-identifierness?</li>
402  </ol>  </ol>
403    
404    <p>To
405    <dfn id=algorithm-to-validate-a-system-identifier title="validate a system identifier">validate
406    a system identifier (<dfn id=var-sid><var>sid</var></dfn>)</dfn>, the
407    following algorithm <em class=rfc2119>MUST</em> be used:</p>
408    <ol>
409      <li>If <var>sid</var> is <code>null</code>, abort these steps.</li>
410      <li>If <var>sid</var> contains both <code class=char>U+0022</code>
411      <code class=charname>QUOTATION MARK</code> (<code class=char>"</code>) and
412      <code class=char>U+0027</code> <code class=charname>APOSTROPHE</code>
413      (<code class=char>'</code>) characters, raise an
414      <a href="#xml-well-formedness-error" id=wfe-sid-lit><code>xml-well-formedness-error</code></a>.</li>
415      <li>If <var>sid</var> contains at least one <code class=char>U+0023</code>
416      <code class=charname>NUMBER SIGN</code> (<code class=char>#</code>)
417      character, then raise an
418      <a href="#xml-misc-error" id=xme-sid-fragment><code>xml-misc-error</code></a>.</li>
419      <li class=ed>@@ If <var>sid</var> cannot be converted to a URI
420      reference, then raise a fact-level error (xml-misc-warning?).<!--
421      XML 1.0 has no conformance language for system identifier being
422      a URI reference. --></li>
423    </ol>
424    
425  </div>  </div>
426    
427  <div class=section id=checking-node>  <div class=section id=checking-node>
# Line 408  following:</p> Line 434  following:</p>
434  <dt>If <var>n</var> is an <code>Attr</code> node</dt>  <dt>If <var>n</var> is an <code>Attr</code> node</dt>
435    <dd>    <dd>
436      <ol>      <ol>
437      <li><a href="#algorithm-to-validate-a-ncname">Validate the      <li><a href="#algorithm-to-validate-an-ncname">Validate the
438      <code>localName</code> attribute value as an <code>NCName</code></a>.</li>      <code>localName</code> attribute value as an <code>NCName</code></a>.</li>
439      <li>If the <code>prefix</code> attribute value is different from      <li>If the <code>prefix</code> attribute value is different from
440      <code>null</code>, then <a href="#algorithm-to-validate-a-ncname">validate      <code>null</code>, then <a href="#algorithm-to-validate-an-ncname">validate
441      the <code>prefix</code> attribute value as an <code>NCName</code></a>.</li>      the <code>prefix</code> attribute value as an <code>NCName</code></a>.</li>
442      <li>For each node <dfn id=var-attr-nc><var>n<sub><var>c</var></sub></var></dfn> in the      <li>For each node <dfn id=var-attr-nc><var>n<sub><var>c</var></sub></var></dfn> in the
443      <code>childNodes</code> list of <var>n</var>,      <code>childNodes</code> list of <var>n</var>,
# Line 630  following:</p> Line 656  following:</p>
656  <dt>If <var>n</var> is a <code>DocumentType</code> node</dt>  <dt>If <var>n</var> is a <code>DocumentType</code> node</dt>
657    <dd>    <dd>
658      <ol>      <ol>
659      <li><a href="#algorithm-to-validate-a-ncname">Validate the      <li><a href="#algorithm-to-validate-an-ncname">Validate the
660      <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>      <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>
661      <li>Follow the following substeps:      <li>Follow the following substeps:
662        <ol>        <ol>
# Line 649  following:</p> Line 675  following:</p>
675      </li>      </li>
676      <li><a href="#algorithm-to-validate-a-public-identifier" title="validate a public identifier">Validate      <li><a href="#algorithm-to-validate-a-public-identifier" title="validate a public identifier">Validate
677      the <code>publicId</code> attribute value as a public identifier</a>.</li>      the <code>publicId</code> attribute value as a public identifier</a>.</li>
678      <li>If the <code>systemId</code> attribute value contains      <li><a href="#algorithm-to-validate-a-system-identifier" title="validate a system identifier">Validate
679      both <code>"</code> and <code>'</code> characters, it is a      the <code>systemId</code> attribute value as a system identifier</a>.</li>
680      <a href="#xml-well-formedness-error" id=wfe-dt-system-id><code>xml-well-formedness-error</code></a>.</li>      <li>If the <code>publicId</code> attribute value of <var>n</var> is
681      <!-- @@ "It is an error for a fragment identifier (beginning with a # character) to be part of a system identifier." -->      <em>not</em> <code>null</code> and the <code>systemId</code> attribute
682      <!-- publicId = non-null and systemId = null -->      value of <var>n</var> is <code>null</code>, then raise an
683        <a href="#xml-well-formedness-error" id=wfe-dt-sid><code>xml-well-formedness-error</code></a>.
684        <span class=ed>@@ publicId == null?  Or, publicId == ""</span></li>
685      <li>For each node <dfn id=var-dt-nc><var>n<sub><var>c</var></sub></var></dfn>      <li>For each node <dfn id=var-dt-nc><var>n<sub><var>c</var></sub></var></dfn>
686      in the <code>childNodes</code> list of <var>n</var>,      in the <code>childNodes</code> list of <var>n</var>,
687        <ol>        <ol>
# Line 665  following:</p> Line 693  following:</p>
693        <a href="#algorithm-to-check-a-node" title="check a node">check        <a href="#algorithm-to-check-a-node" title="check a node">check
694        <var>n<sub><var>c</var></sub></var></a> recusrively.</li>        <var>n<sub><var>c</var></sub></var></a> recusrively.</li>
695        </ol></li>        </ol></li>
696      <li class=ed>@@ <code>entities</code>, <code>notations</code>,      <li>For each node in the <code>entities</code>, <code>notations</code>,
697      <code>elementTypes</code>, externally declared?</li>      and <code>elementTypes</code> lists of <var>n</var>,
698        <a href="#algorithm-to-check-a-node" title="check a node">check the
699        node</a> recursively.</li>
700        <li class=ed>@@ externally declared?</li>
701      </ol>      </ol>
702    </dd>    </dd>
703  <dt>If <var>n</var> is an <code>Element</code> node</dt>  <dt>If <var>n</var> is an <code>Element</code> node</dt>
704    <dd>    <dd>
705      <ol>      <ol>
706      <li><a href="#algorithm-to-validate-a-ncname">Validate the      <li><a href="#algorithm-to-validate-an-ncname">Validate the
707      <code>localName</code> attribute value as an <code>NCName</code></a>.</li>      <code>localName</code> attribute value as an <code>NCName</code></a>.</li>
708      <li>If the <code>prefix</code> attribute value is different from      <li>If the <code>prefix</code> attribute value is different from
709      <code>null</code>, then <a href="#algorithm-to-validate-a-ncname">validate      <code>null</code>, then <a href="#algorithm-to-validate-an-ncname">validate
710      the <code>prefix</code> attribute value as an <code>NCName</code></a>.</li>      the <code>prefix</code> attribute value as an <code>NCName</code></a>.</li>
711      <li>For each node <dfn id=var-element-nc><var>n<sub><var>c</var></sub></var></dfn>      <li>For each node <dfn id=var-element-nc><var>n<sub><var>c</var></sub></var></dfn>
712      in the <code>childNodes</code> list of <var>n</var>,      in the <code>childNodes</code> list of <var>n</var>,
# Line 694  following:</p> Line 725  following:</p>
725        <var>n<sub><var>c</var></sub></var></a> recursively.</li>        <var>n<sub><var>c</var></sub></var></a> recursively.</li>
726        </ol></li>        </ol></li>
727      <li class=ed>@@ #elementvalid Validity constraint: Element Valid</li>      <li class=ed>@@ #elementvalid Validity constraint: Element Valid</li>
728      <li class=ed>@@ #uniqattspec Well-formedness constraint: Unique Att Spec</li>      <li>Let <var>attrs</var> be the value of the <code>attribute</code>
729      <li class=ed>@@ #RequiredAttr Validity constraint: Required Attribute</li>      attribute of <var>n</var>.  Check conformance of <var>attrs</var>
730        as following:
731          <ol>
732          <li>If <var>attrs</var> contains an <code>Attr</code> node whose
733          <code>nodeName</code> attribute value is equal to that of another
734          <code>Attr</code> node in <var>attrs</var>, then raise an
735          <a href="#xml-well-formedness-error" id=wfe-uniqattspec><code>xml-well-formedness-error</code></a>.<!--
736          #uniqattspec Well-formedness constraint: Unique Att Spec --></li>
737          <li class=ed>@@ #RequiredAttr Validity constraint: Required Attribute</li>
738          </ol>
739        </li>
740      </ol>      </ol>
741    </dd>    </dd>
742  <dt>If <var>n</var> is an <code>ElementTypeDefinition</code> node</dt>  <dt>If <var>n</var> is an <code>ElementTypeDefinition</code> node</dt>
# Line 723  following:</p> Line 764  following:</p>
764      <li class=ed>"For interoperability, the same Nmtoken  SHOULD NOT occur more than once in the enumerated attribute types of a single element type."</li>      <li class=ed>"For interoperability, the same Nmtoken  SHOULD NOT occur more than once in the enumerated attribute types of a single element type."</li>
765      </ol>      </ol>
766    </dd>    </dd>
767  <dt>If <var>n</var> is an <code>Entity</code> node</dt>  <dt>If <var>n</var> is an <code>Entity</code> node whose
768    <code>notationName</code> attribute value is <code>null</code> (i.e. a
769    parsed entity)</dt>
770    <dd>    <dd>
771      <ol>      <ol>
772      <li>An <a href="#entity-error" id=ee-entity-node><code>entity-error</code></a> <span class=ed>@@ if !notationName</span>.</li>      <li>Raise an
773      <li><a href="#algorithm-to-validate-a-ncname">Validate the      <a href="#entity-error" id=ee-entity-node><code>entity-error</code></a>.</li>
774        <li><a href="#algorithm-to-validate-an-ncname">Validate the
775      <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>      <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>
776      <li><a href="#algorithm-to-validate-a-public-identifier" title="validate a public identifier">Validate      <li><a href="#algorithm-to-validate-a-public-identifier" title="validate a public identifier">Validate
777      the <code>publicId</code> attribute value as a public identifier</a>.</li>      the <code>publicId</code> attribute value as a public identifier</a>.</li>
778      <li>If the <code>systemId</code> attribute value contains      <li><a href="#algorithm-to-validate-a-system-identifier" title="validate a system identifier">Validate
779      both <code>"</code> and <code>'</code> characters, it is a      the <code>systemId</code> attribute value as a system identifier</a>.</li>
780      <a href="#xml-well-formedness-error" id=wfe-dt-system-id><code>xml-well-formedness-error</code></a>.</li>      <li>If the <code>publicId</code> attribute value of <var>n</var> is
781      <!-- publicId = non-null and systemId = null -->      <em>not</em> <code>null</code> and the <code>systemId</code> attribute
782      <li class=ed>@@ <code>notationName</code></li>      value of <var>n</var> is <code>null</code>, then raise an
783      <li class=ed>@@ #not-declared Validity constraint: Notation Declared</li>      <a href="#xml-well-formedness-error" id=wfe-entity-sid><code>xml-well-formedness-error</code></a>.</li>
784      <li>For each node <dfn id=var-entity-nc><var>n<sub><var>c</var></sub></var></dfn>      <li>For each node <dfn id=var-entity-nc><var>n<sub><var>c</var></sub></var></dfn>
785      in the <code>childNodes</code> list of <var>n</var>,      in the <code>childNodes</code> list of <var>n</var>,
786        <ol>        <ol>
# Line 755  following:</p> Line 799  following:</p>
799        </ol></li>        </ol></li>
800      </ol>      </ol>
801    </dd>    </dd>
802    <dt>If <var>n</var> is an <code>Entity</code> node whose
803    <code>notationName</code> attribute value is <em>not</em> <code>null</code>
804    (i.e. an unparsed entity)</dt>
805      <dd>
806        <ol>
807        <li><a href="#algorithm-to-validate-an-ncname">Validate the
808        <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>
809        <li><a href="#algorithm-to-validate-a-public-identifier" title="validate a public identifier">Validate
810        the <code>publicId</code> attribute value as a public identifier</a>.</li>
811        <li><a href="#algorithm-to-validate-a-system-identifier" title="validate a system identifier">Validate
812        the <code>systemId</code> attribute value as a system identifier</a>.</li>
813        <li>If the <code>systemId</code> attribute value of <var>n</var> is
814        <code>null</code>, then raise an
815        <a href="#xml-well-formedness-error" id=wfe-uentity-sid><code>xml-well-formedness-error</code></a>.</li>
816        <li><a href="#algorithm-to-validate-an-ncname">Validate the
817        <code>notationName</code> attribute value of <var>n</var> as an
818        <code>NCName</code></a>.</li>
819        <li class=ed>@@ #not-declared Validity constraint: Notation Declared</li>
820        <li>If the <code>childNodes</code> list of <var>n</var> contains
821        any nodes, they are in
822        <a href="#xml-well-formedness-error" id=wfe-uentity-child><code>xml-well-formedness-error</code></a>.</li>
823        </ol>
824      </dd>
825  <dt>If <var>n</var> is an <code>EntityReference</code> node</dt>  <dt>If <var>n</var> is an <code>EntityReference</code> node</dt>
826    <dd>    <dd>
827      <ol>      <ol>
828      <li>An <a href="#entity-error" id=ee-er-node><code>entity-error</code></a>.</li>      <li>An <a href="#entity-error" id=ee-er-node><code>entity-error</code></a>.</li>
829      <li><a href="#algorithm-to-validate-a-ncname">Validate the      <li><a href="#algorithm-to-validate-an-ncname">Validate the
830      <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>      <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>
831      <li>For each node <dfn id=var-er-nc><var>n<sub><var>c</var></sub></var></dfn>      <li>For each node <dfn id=var-er-nc><var>n<sub><var>c</var></sub></var></dfn>
832      in the <code>childNodes</code> list of <var>n</var>,      in the <code>childNodes</code> list of <var>n</var>,
# Line 782  following:</p> Line 849  following:</p>
849  <dt>If <var>n</var> is a <code>Notation</code> node</dt>  <dt>If <var>n</var> is a <code>Notation</code> node</dt>
850    <dd>    <dd>
851      <ol>      <ol>
852      <li><a href="#algorithm-to-validate-a-ncname">Validate the      <li><a href="#algorithm-to-validate-an-ncname">Validate the
853      <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>      <code>nodeName</code> attribute value as an <code>NCName</code></a>.</li>
854      <li><a href="#algorithm-to-validate-a-public-identifier" title="validate a public identifier">Validate      <li><a href="#algorithm-to-validate-a-public-identifier" title="validate a public identifier">Validate
855      the <code>publicId</code> attribute value as a public identifier</a>.</li>      the <code>publicId</code> attribute value as a public identifier</a>.</li>
856      <li>If the <code>systemId</code> attribute value contains      <li><a href="#algorithm-to-validate-a-system-identifier" title="validate a system identifier">Validate
857      both <code>"</code> and <code>'</code> characters, it is a      the <code>systemId</code> attribute value as a system identifier</a>.</li>
     <a href="#xml-well-formedness-error" id=wfe-dt-system-id><code>xml-well-formedness-error</code></a>.</li>  
858      <li>If the <code>childNodes</code> list of <var>n</var> contains      <li>If the <code>childNodes</code> list of <var>n</var> contains
859      any nodes, they are in      any nodes, they are in
860      <a href="#xml-well-formedness-error" id=wfe-notation-child><code>xml-well-formedness-error</code></a>.</li>      <a href="#xml-well-formedness-error" id=wfe-notation-child><code>xml-well-formedness-error</code></a>.</li>
# Line 800  following:</p> Line 866  following:</p>
866      <li>If the <code>target</code> attribute value matches to the string      <li>If the <code>target</code> attribute value matches to the string
867      <code>xml</code> in any case combination, then raise a      <code>xml</code> in any case combination, then raise a
868      <a href="#xml-well-formedness-error" id=wfe-pi-xml><code>xml-well-formedness-error</code></a>.</li>      <a href="#xml-well-formedness-error" id=wfe-pi-xml><code>xml-well-formedness-error</code></a>.</li>
869      <li>Otherwise, <a href="#algorithm-to-validate-a-ncname">validate the      <li>Otherwise, <a href="#algorithm-to-validate-an-ncname">validate the
870      <code>target</code> attribute value as an <code>NCName</code></a>.</li>      <code>target</code> attribute value as an <code>NCName</code></a>.</li>
871      <li>Then,      <li>Then,
872      <a href="#algorithm-to-validate-an-xml-character-data" title="validate an XML character data">validate      <a href="#algorithm-to-validate-an-xml-character-data" title="validate an XML character data">validate

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24