The Labs \ Source Viewer \ SSCLI \ System.Xml.Xsl.XsltOld \ HtmlElementProps

  1. //------------------------------------------------------------------------------
  2. // <copyright file="HtmlProps.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. namespace System.Xml.Xsl.XsltOld
  16. {
  17.     using Res = System.Xml.Utils.Res;
  18.     using System;
  19.     using System.Collections;
  20.     using System.Collections.Specialized;
  21.     using System.Diagnostics;
  22.     using System.Xml;
  23.     using System.Globalization;
  24.    
  25.     internal class HtmlElementProps
  26.     {
  27.         private bool empty;
  28.         private bool abrParent;
  29.         private bool uriParent;
  30.         private bool noEntities;
  31.         private bool blockWS;
  32.         private bool head;
  33.         private bool nameParent;
  34.        
  35.         public static HtmlElementProps Create(bool empty, bool abrParent, bool uriParent, bool noEntities, bool blockWS, bool head, bool nameParent)
  36.         {
  37.             HtmlElementProps props = new HtmlElementProps();
  38.             props.empty = empty;
  39.             props.abrParent = abrParent;
  40.             props.uriParent = uriParent;
  41.             props.noEntities = noEntities;
  42.             props.blockWS = blockWS;
  43.             props.head = head;
  44.             props.nameParent = nameParent;
  45.             return props;
  46.         }
  47.         public bool Empty {
  48.             get { return this.empty; }
  49.         }
  50.         public bool AbrParent {
  51.             get { return this.abrParent; }
  52.         }
  53.         public bool UriParent {
  54.             get { return this.uriParent; }
  55.         }
  56.         public bool NoEntities {
  57.             get { return this.noEntities; }
  58.         }
  59.         public bool BlockWS {
  60.             get { return this.blockWS; }
  61.         }
  62.         public bool Head {
  63.             get { return this.head; }
  64.         }
  65.         public bool NameParent {
  66.             get { return this.nameParent; }
  67.         }
  68.        
  69.        
  70.         private static Hashtable s_table = CreatePropsTable();
  71.         // static private HtmlElementProps s_otherElements = Create(false, false, false, false, false, false, false);
  72.        
  73.         public static HtmlElementProps GetProps(string name)
  74.         {
  75.             HtmlElementProps result = (HtmlElementProps)s_table[name];
  76.             return result;
  77.             // We can do this but in case of Xml/Html mixed output this doesn't have big sence.
  78.             // return result != null ? result : s_otherElements;
  79.         }
  80.        
  81.         static Hashtable CreatePropsTable()
  82.         {
  83.             bool o = false;
  84.             bool X = true;
  85.             Hashtable table = new Hashtable(71, StringComparer.OrdinalIgnoreCase);
  86.             {
  87.                 // EMPTY ABR URI NO_ENT NO_WS HEAD NAME
  88.                 table.Add("a", Create(o, o, X, o, o, o, X));
  89.                 table.Add("address", Create(o, o, o, o, X, o, o));
  90.                 table.Add("applet", Create(o, o, o, o, X, o, o));
  91.                 table.Add("area", Create(X, X, X, o, X, o, o));
  92.                 table.Add("base", Create(X, o, X, o, X, o, o));
  93.                 table.Add("basefont", Create(X, o, o, o, X, o, o));
  94.                 table.Add("blockquote", Create(o, o, X, o, X, o, o));
  95.                 table.Add("body", Create(o, o, o, o, X, o, o));
  96.                 table.Add("br", Create(X, o, o, o, o, o, o));
  97.                 table.Add("button", Create(o, X, o, o, o, o, o));
  98.                 table.Add("caption", Create(o, o, o, o, X, o, o));
  99.                 table.Add("center", Create(o, o, o, o, X, o, o));
  100.                 table.Add("col", Create(X, o, o, o, X, o, o));
  101.                 table.Add("colgroup", Create(o, o, o, o, X, o, o));
  102.                 table.Add("dd", Create(o, o, o, o, X, o, o));
  103.                 table.Add("del", Create(o, o, X, o, X, o, o));
  104.                 table.Add("dir", Create(o, X, o, o, X, o, o));
  105.                 table.Add("div", Create(o, o, o, o, X, o, o));
  106.                 table.Add("dl", Create(o, X, o, o, X, o, o));
  107.                 table.Add("dt", Create(o, o, o, o, X, o, o));
  108.                 table.Add("fieldset", Create(o, o, o, o, X, o, o));
  109.                 table.Add("font", Create(o, o, o, o, X, o, o));
  110.                 table.Add("form", Create(o, o, X, o, X, o, o));
  111.                 table.Add("frame", Create(X, X, o, o, X, o, o));
  112.                 table.Add("frameset", Create(o, o, o, o, X, o, o));
  113.                 table.Add("h1", Create(o, o, o, o, X, o, o));
  114.                 table.Add("h2", Create(o, o, o, o, X, o, o));
  115.                 table.Add("h3", Create(o, o, o, o, X, o, o));
  116.                 table.Add("h4", Create(o, o, o, o, X, o, o));
  117.                 table.Add("h5", Create(o, o, o, o, X, o, o));
  118.                 table.Add("h6", Create(o, o, o, o, X, o, o));
  119.                 table.Add("head", Create(o, o, X, o, X, X, o));
  120.                 table.Add("hr", Create(X, X, o, o, X, o, o));
  121.                 table.Add("html", Create(o, o, o, o, X, o, o));
  122.                 table.Add("iframe", Create(o, o, o, o, X, o, o));
  123.                 table.Add("img", Create(X, X, X, o, o, o, o));
  124.                 table.Add("input", Create(X, X, X, o, o, o, o));
  125.                 table.Add("ins", Create(o, o, X, o, X, o, o));
  126.                 table.Add("isindex", Create(X, o, o, o, X, o, o));
  127.                 table.Add("legend", Create(o, o, o, o, X, o, o));
  128.                 table.Add("li", Create(o, o, o, o, X, o, o));
  129.                 table.Add("link", Create(X, o, X, o, X, o, o));
  130.                 table.Add("map", Create(o, o, o, o, X, o, o));
  131.                 table.Add("menu", Create(o, X, o, o, X, o, o));
  132.                 table.Add("meta", Create(X, o, o, o, X, o, o));
  133.                 table.Add("noframes", Create(o, o, o, o, X, o, o));
  134.                 table.Add("noscript", Create(o, o, o, o, X, o, o));
  135.                 table.Add("object", Create(o, X, X, o, o, o, o));
  136.                 table.Add("ol", Create(o, X, o, o, X, o, o));
  137.                 table.Add("optgroup", Create(o, X, o, o, X, o, o));
  138.                 table.Add("option", Create(o, X, o, o, X, o, o));
  139.                 table.Add("p", Create(o, o, o, o, X, o, o));
  140.                 table.Add("param", Create(X, o, o, o, X, o, o));
  141.                 table.Add("pre", Create(o, o, o, o, X, o, o));
  142.                 table.Add("q", Create(o, o, X, o, o, o, o));
  143.                 table.Add("s", Create(o, o, o, o, X, o, o));
  144.                 table.Add("script", Create(o, X, X, X, o, o, o));
  145.                 table.Add("select", Create(o, X, o, o, o, o, o));
  146.                 table.Add("strike", Create(o, o, o, o, X, o, o));
  147.                 table.Add("style", Create(o, o, o, X, X, o, o));
  148.                 table.Add("table", Create(o, o, X, o, X, o, o));
  149.                 table.Add("tbody", Create(o, o, o, o, X, o, o));
  150.                 table.Add("td", Create(o, X, o, o, X, o, o));
  151.                 table.Add("textarea", Create(o, X, o, o, o, o, o));
  152.                 table.Add("tfoot", Create(o, o, o, o, X, o, o));
  153.                 table.Add("th", Create(o, X, o, o, X, o, o));
  154.                 table.Add("thead", Create(o, o, o, o, X, o, o));
  155.                 table.Add("title", Create(o, o, o, o, X, o, o));
  156.                 table.Add("tr", Create(o, o, o, o, X, o, o));
  157.                 table.Add("ul", Create(o, X, o, o, X, o, o));
  158.                 table.Add("xmp", Create(o, o, o, o, o, o, o));
  159.             }
  160.             return table;
  161.         }
  162.     }
  163.    
  164.     internal class HtmlAttributeProps
  165.     {
  166.         private bool abr;
  167.         private bool uri;
  168.         private bool name;
  169.        
  170.         public static HtmlAttributeProps Create(bool abr, bool uri, bool name)
  171.         {
  172.             HtmlAttributeProps props = new HtmlAttributeProps();
  173.             props.abr = abr;
  174.             props.uri = uri;
  175.             props.name = name;
  176.             return props;
  177.         }
  178.         public bool Abr {
  179.             get { return this.abr; }
  180.         }
  181.         public bool Uri {
  182.             get { return this.uri; }
  183.         }
  184.         public bool Name {
  185.             get { return this.name; }
  186.         }
  187.        
  188.         private static Hashtable s_table = CreatePropsTable();
  189.         // static private HtmlElementProps s_otherAttributes = Create(false, false, false);
  190.        
  191.         public static HtmlAttributeProps GetProps(string name)
  192.         {
  193.             HtmlAttributeProps result = (HtmlAttributeProps)s_table[name];
  194.             return result;
  195.             // We can do this but in case of Xml/Html mixed output this doesn't have big sence.
  196.             // return result != null ? result : s_otherElements;
  197.         }
  198.        
  199.         static Hashtable CreatePropsTable()
  200.         {
  201.             bool o = false;
  202.             bool X = true;
  203.             Hashtable table = new Hashtable(26, StringComparer.OrdinalIgnoreCase);
  204.             {
  205.                 // ABR URI NAME
  206.                 table.Add("action", Create(o, X, o));
  207.                 table.Add("checked", Create(X, o, o));
  208.                 table.Add("cite", Create(o, X, o));
  209.                 table.Add("classid", Create(o, X, o));
  210.                 table.Add("codebase", Create(o, X, o));
  211.                 table.Add("compact", Create(X, o, o));
  212.                 table.Add("data", Create(o, X, o));
  213.                 table.Add("datasrc", Create(o, X, o));
  214.                 table.Add("declare", Create(X, o, o));
  215.                 table.Add("defer", Create(X, o, o));
  216.                 table.Add("disabled", Create(X, o, o));
  217.                 table.Add("for", Create(o, X, o));
  218.                 table.Add("href", Create(o, X, o));
  219.                 table.Add("ismap", Create(X, o, o));
  220.                 table.Add("longdesc", Create(o, X, o));
  221.                 table.Add("multiple", Create(X, o, o));
  222.                 table.Add("name", Create(o, o, X));
  223.                 table.Add("nohref", Create(X, o, o));
  224.                 table.Add("noresize", Create(X, o, o));
  225.                 table.Add("noshade", Create(X, o, o));
  226.                 table.Add("nowrap", Create(X, o, o));
  227.                 table.Add("profile", Create(o, X, o));
  228.                 table.Add("readonly", Create(X, o, o));
  229.                 table.Add("selected", Create(X, o, o));
  230.                 table.Add("src", Create(o, X, o));
  231.                 table.Add("usemap", Create(o, X, o));
  232.             }
  233.             return table;
  234.         }
  235.     }
  236. }

Developer Fusion