Annotation of 2002/css-validator/HOWTO.html, revision 1.1
1.1 ! plehegar 1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
! 2: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
! 3: <html xmlns="http://www.w3.org/1999/xhtml" lang="en-fr" xml:lang="en-fr">
! 4: <head>
! 5: <title>CSS Validator Project</title>
! 6:
! 7: <link href="style/page.css" type="text/css" rel="STYLESHEET" />
! 8: <meta name="ROBOTS" content="NOINDEX, NOFOLLOW" />
! 9: <link rel="STYLESHEET" title="default" media="screen" href="style/general.css" type="text/css" />
! 10: <meta name="Generator" content="*emacs: emacs-css" />
! 11: <meta name="ROBOTS" content="NOINDEX, NOFOLLOW" />
! 12: </head>
! 13: <body>
! 14: <a class="left" href="http://www.w3.org"><img
! 15: src="http://www.w3.org/Icons/w3c_home" alt="w3c" border="0" /></a>
! 16: <a class="right" href="http://www.w3.org/Jigsaw/"><img
! 17: src="http://jigsaw.w3.org/Icons/jigpower.gif" alt="Jigsaw Powered"
! 18: border="0" width="94" height="52" /></a>
! 19: <br />
! 20:
! 21: <div class="t1">CSS</div>
! 22: <div class="t2">Validator</div>
! 23:
! 24: <h1 class="center">CSS Validator version 2.0 :
! 25: How to add CSS properties in this validator ?</h1>
! 26:
! 27: <p>In first, you should create your properties.</p>
! 28:
! 29: <p>To do this, You should extend the class CSS.Properties.CssProperty. If you have
! 30: some macros, see <a href="docs/org.w3c.css.aural.ACssCueBefore.html">CSS.Properties.ACssCueBefore</a> for an example.
! 31: </p>
! 32: <p>An example for the name of a property :
! 33: <code>CSS2.Printing.CssPageBreakBefore</code>
! 34: </p>
! 35: <p>Then, you should implements the interface
! 36: <a href="docs/org.w3c.css.parser.CssStyle.html">org.w3c.css.parser.CssStyle</a>. For an example, you can see
! 37: <a href="docs/org.w3c.css.aural.ACssStyle.html">org.w3c.css.aural.ACssStyle</a>. In this
! 38: example, I added aural cascading style sheet to cascading style sheet level 1,
! 39: so I extends the style Css1Style that implements the CssStyle. Be careful, you
! 40: must have a public constructor with no parameters in your CssStyle !
! 41: </p>
! 42: <p>An example for the name of your style :
! 43: <code>CSS2.Printing.PCssStyle</code>
! 44: </p>
! 45: <p>Create two configuration properties file :</p>
! 46: <ol>
! 47: <li>Config.properties
! 48: <pre>
! 49: # My parser config :
! 50: style : CSS2.Printing.PCssStyle
! 51: properties: CSS2Printing.properties
! 52: # Note : the file CSS2Printing.properties should be in your style directory.
! 53:
! 54: # Activate the CSS2 parser
! 55: extended-parser : true
! 56: </pre></li>
! 57: <li>CS2Printing.properties
! 58: <pre>
! 59: # A property
! 60: # Note : if you want to reuse CSS1 properties, you should add all properties !
! 61: # For an example, see <a
! 62: href="org/w3c/css/aural/AuralProperties.properties">AuralProperties.properties</a>
! 63: page-break-before : CSS2.Printing.CssPageBreakBefore
! 64: </pre></li>
! 65: </ol>
! 66:
! 67: <p>Now you are ready to parse your properties.</p>
! 68: <p>Finally, You should say where the parser can find your properties. This is
! 69: a sample code to parse your owns properties :</p>
! 70:
! 71: <pre>
! 72: <span class="keyword">import</span> <span class="reference">java</span>.<span class="reference">util</span>.<span class="type">Properties</span>;
! 73: <span class="keyword">import</span> <span class="reference">java</span>.<span class="reference">net</span>.<span class="type">URL</span>;
! 74:
! 75: <span class="keyword">import</span> <span class="reference">org</span>.<span class="reference">w3c</span>.<span class="reference">css</span>.<span class="reference">parser</span>.<span class="type">CssFouffa</span>;
! 76: <span class="keyword">import</span> <span class="reference">org</span>.<span class="reference">w3c</span>.<span class="reference">css</span>.<span class="reference">css</span>.<span class="type">StyleSheetParser</span>;
! 77: <span class="keyword">import</span> <span class="reference">org</span>.<span class="reference">w3c</span>.<span class="reference">css</span>.<span class="reference">css</span>.<span class="type">StyleSheetOrigin</span>;
! 78:
! 79: <span class="keyword">import</span> <span class="reference">CSS2</span>.<span class="reference">Printing</span>.<span class="type">PCssStyle</span>;
! 80:
! 81: <span class="keyword">class</span> <span class="function-name">MyStartUp</span> {
! 82:
! 83: <span class="reference">public</span> <span class="type">static</span> <span class="type">void</span> <span class="function-name">main</span>(<span class="type">String</span>[] <span class="variable-name">args</span>) {
! 84:
! 85: <span class="type">Properties</span> <span class="variable-name">properties</span> = <span class="keyword">new</span> <span class="type">Properties</span>();
! 86: <span class="keyword">try</span> {
! 87: <span class="type">Properties</span> <span class="variable-name">config</span> = <span class="keyword">new</span> <span class="type">Properties</span>();
! 88:
! 89: <span class="comment">// try to load the file
! 90: </span> <span class="type">URL</span> <span class="variable-name">url</span> = PCssStyle.<span class="keyword">class</span>.getResource("<span class="string">CSS2Printing.properties</span>");
! 91:
! 92: config.load(url.openStream());
! 93:
! 94: <span class="comment">// set the parser
! 95: </span> CssFouffa.loadConfig(config);
! 96:
! 97: } <span class="keyword">catch</span> (<span class="type">Exception</span> <span class="variable-name">e</span>) {
! 98: System.err.println("<span class="string">MyStartUp: couldn't load properties</span>");
! 99: System.err.println("<span class="string"> </span>" + e.toString() );
! 100: System.exit(1);
! 101: }
! 102:
! 103: <span class="comment">// now the parser is ready !
! 104: </span>
! 105: <span class="comment">// create a parser
! 106: </span> <span class="type">StyleSheetParser</span> <span class="variable-name">parser</span> = <span class="keyword">new</span> <span class="type">StyleSheetParser</span>();
! 107:
! 108: <span class="comment">// parse an URL
! 109: </span> parser.parseURL(<span class="keyword">new</span> <span class="type">URL</span>("<span class="string">http://www.w3.org/Style</span>"), StyleSheetOrigin.AUTHOR);
! 110:
! 111: <span class="comment">// output the result
! 112: </span> <span class="type">StyleSheetGenerator</span> <span class="variable-name">style</span> =
! 113: <span class="keyword">new</span> <span class="type">StyleSheetGenerator</span>("<span class="string">My example</span>", <span class="comment">// title
! 114: </span> parser.getStyleSheet(), <span class="comment">// get the style sheet
! 115: </span> "<span class="string">text</span>"); <span class="comment">// output format
! 116: </span> style.print(System.out);
! 117: }
! 118: }
! 119:
! 120: </pre>
! 121:
! 122: <p>There is an example for a new package for CSS2. In this example, I reuse
! 123: Aural properties.
! 124: </p>
! 125: <hr class="large" />
! 126: <img src="images/mwcss.gif" alt="made with CSS" />
! 127: <address class="right"><a href="mailto:www-validator-cssw3.org">validator-css</a></address>
! 128: </body>
! 129: </html>
Webmaster