/[suikacvs]/markup/html/whatpm/Whatpm/ContentChecker.pod
Suika

Contents of /markup/html/whatpm/Whatpm/ContentChecker.pod

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations) (download)
Sun Oct 5 05:59:35 2008 UTC (16 years, 1 month ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +55 -2 lines
++ whatpm/t/ChangeLog	5 Oct 2008 05:38:58 -0000
	* content-model-1.dat, content-model-2.dat: Test results on
	|label| contents fixed.

	* ContentChecker.t: |dom-conformance/html-form-label.dat| added.

	* dom-conformance/: New directory.

2008-10-05  Wakaba  <wakaba@suika.fam.cx>

++ whatpm/t/dom-conformance/ChangeLog	5 Oct 2008 05:35:48 -0000
2008-10-05  Wakaba  <wakaba@suika.fam.cx>

	* html-form-label.dat: New test data file.

	* ChangeLog: New file.

++ whatpm/Whatpm/ChangeLog	5 Oct 2008 05:58:50 -0000
	* ContentChecker.pod: Note on internal flags is added.

2008-10-05  Wakaba  <wakaba@suika.fam.cx>

++ whatpm/Whatpm/ContentChecker/ChangeLog	5 Oct 2008 05:36:36 -0000
2008-10-05  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm: <label> content conformance checking implemented.

1 =head1 NAME
2
3 Whatpm::ContentChecker - DOM Conformance Checker
4
5 =head1 SYNOPSIS
6
7 use Whatpm::ContentChecker;
8
9 Whatpm::ContentChecker->check_document ($doc, sub {
10 my %arg = @_;
11 warn get_node_path ($arg{node}), ": ",
12 ($arg{level} || "Error"), ": ",
13 $arg{type}, "\n";
14 });
15
16 Whatpm::ContentChecker->check_element ($doc, sub {
17 my %arg = @_;
18 warn get_node_path ($arg{node}), ": ",
19 ($arg{level} || "Error"), ": ",
20 $arg{type}, "\n";
21 });
22
23 =head1 DESCRIPTION
24
25 The C<Whatpm::ContentChecker> Perl module contains two methods
26 to validate DOM tree for its conformance to the markup language
27 in use.
28
29 This module is part of Whatpm, Perl Modules for
30 Web Hypertext Application Technologies, which is a subproject
31 of manakai.
32
33 =head1 METHODS
34
35 This module contains two static methods:
36
37 =over 4
38
39 =item Whatpm::ContentChecker->check_document (I<$document>, I<$onerror>);
40
41 Checks a document, I<$document>, and its descendant for their
42 conformance. If there is an error or a warnign, then the
43 I<$onerror> C<CODE> is invoked with named arguments same
44 as ones for the method C<check_element>.
45
46 =item Whatpm::ContentChecker->check_element (I<$element>, I<$onerror>);
47
48 Checks an element, I<$element>, and its descendant for their conformance.
49 If there is an error or a warning, then the I<$onerror> C<CODE>
50 is invoked with named arguments:
51
52 =over 4
53
54 =item level (Might be C<undef>)
55
56 A string which describes the severity of the error or warning.
57 For the list of the severities, see
58 <http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types>.
59
60 =item node (Always specified)
61
62 The node with which the error is detected.
63
64 =item type (Always specified)
65
66 A string which describes the type of the error or warning.
67 For the list of the errors and warnings, see
68 <http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types>.
69
70 =back
71
72 =back
73
74 =head1 BUGS
75
76 This conformance checker is work in progress; it I<might> not be
77 able to detect all the errors in the DOM tree, and it I<might>
78 detect an error for a node that is conforming in fact.
79
80 =head1 NOTES ON IMPLEMENTATION DETAILS
81
82 I<This section is not complete.>
83
84 This section describes various internal constructions used in
85 L<Whatpm::ContentChecker> and relevant modules. These data structures
86 are not public interfaces -- they should not be accessed or modified
87 by applications. They are documented here for the convenience of
88 development only.
89
90 =head2 The C<< $self->{flag} >> Structure
91
92 =over 4
93
94 =item C<< $self->{flag}->{has_label} >>
95
96 This flag is set to a true value if and only if there is a C<label>
97 element ancestor of the current node.
98
99 =item C<< $self->{flag}->{has_labelable} >>
100
101 This flag is set to C<1> if and only if a nearest ancestor C<label>
102 element has the C<for> attribute and there is no labelable
103 form-associated element that is a descendant of the C<label> element
104 and precedes the current node in tree order. This flag is set to C<2>
105 if and only if there is a labelable form-associated element that is a
106 descendant of the nearest ancestor C<label> element of the current
107 node and precedes the current node in tree order. This flag is
108 otherwise set to a false value. B<However>, when there is no ancestor
109 C<label> element of the current node, i.e. when
110 C<< $self->{flag}->{has_label} >> is false, the value of the
111 C<< $self->{flag}->{has_labelable} >> flag is I<undefined>.
112
113 =back
114
115 =head2 The C<$element_state> Structure
116
117 =over 4
118
119 =item C<< $element_state->{has_label_original} >>
120
121 Used to preserve the value of C<< $self->{flag}->{has_label} >> at the
122 time of invocation of the method C<element_start> for the element
123 being checked.
124
125 =item C<< $element_state->{has_labelable_original} >>
126
127 Used to preserve the value of C<< $self->{flag}->{has_labelable} >> at
128 the time of invocation of the method C<element_start> for the element
129 being checked.
130
131 =back
132
133 =head1 SEE ALSO
134
135 L<Whatpm::ContentChecker::Atom>
136
137 L<Whatpm::ContentChecker::HTML>
138
139 <http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types>
140
141 =head1 AUTHOR
142
143 Wakaba <w@suika.fam.cx>
144
145 =head1 LICENSE
146
147 Copyright 2007-2008 Wakaba <w@suika.fam.cx>
148
149 This library is free software; you can redistribute it
150 and/or modify it under the same terms as Perl itself.
151
152 =cut
153
154 # $Date: 2007/08/06 10:56:50 $

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24