その点、あなたがXHTML(XML + HTML)文法を知らない(DTD、XSD)

XHTMLとは何か:

インターネット抜粋ワード、XHTMLはHTMLをXMLの役割を果たしていると似ています。

しかし、ときXHTMLテンプレートエンジン用途:

CYQ.DataフレームワークはQBlogオープンソースのブログで使用される、XHtmlActionテンプレートエンジンを設定します。

HTMLのXMLがロードするためにロードを実行するときだけで、入れて、そのようなテンプレートとしてCRUD操作することができ、従来のXML構文を使用します。 

 

なぜHTML、XHTMLけど?

HTMLはラベル、またはラベルの混乱を閉じないよう、厳格な構文に拘束されていないと、ブラウザは、解析されたり、無視、または紛失、またはXXすることができます。

もし直接分析の使用HTML、決してルールをバインドされていない、場合の動作を考慮あまり複雑または因子である、コストが非常に高くなっている可能性があります。

家庭用XML構文は、XmlDocumentオブジェクトの操作がダイレクトで便利な、直接使用することができるので、XHTMLは、使用していました。

 

XHTML注:

私たちはしばしばあり、HTML形式を記述します。

<メタ= " ロボット" コンテンツ=" すべて">或者:<IMG SRC = 'のhttp://xx.gif'国境= '0'>

そして、XHTML XML構文によって結合された場合:

1:個々のラベルは「/>」が閉じている必要があります。

2:のみ閉鎖に二重引用符ではなく一重引用符で同じラベルを属性。

テンプレートの場合は、この問題に注意を払う、人々はHTMLテンプレートの生成を作ってみよう、制御可能なささいなことです。

 

XmlDocumentの運用上の課題とHTMLが必然的に発生します:

 

DTD(文書型定義)?

私は人気のワークフローを使用このHTML&NSBであればI XmlDocument.Load(HTML)は、HTMLテンプレートをロードする場合は、言う;シンボルのようなエンティティは、その負荷は次のように例外をスロー失敗します。

 


DTDあなたはただ見て見ぬふりをする、あなたの前に残ります。

私たちは、新しいHTMLを作成するとき、我々は最初の行にDTDタグリファレンスを参照してくださいすることができます:

<! DOCTYPE用HTML PUBLIC " - // W3C // DTD XHTML 1.0過渡// EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< HTML  のxmlns = "のhttp:/ /www.w3.org/1999/xhtml」 > < > < タイトル>无标题页 </ タイトル> </ ヘッド> < 身体> </ ボディ> </ HTML >  

    




あなたは、デフォルトでは、アドレスは、ブラウザのために、それは実体に解決するだけでなく、DTDへの参照、リモートアドレスがW3団体である、見ることができます。

DTDのブラウザは、通常はローカルの統合では、常にリモートダウンロードに行くことはありませんでしょう。 

私たちは、HTMLを操作する必要がある場合も同様に、私たちは、このDTDファイルを導入する必要があります。

 

どのように常にXmlDocument参照DTD:

ただ、常にXmlDocumentプロパティを設定し、新しいXmlUrlResolverを= XmlResolverの()にします。

我々は(HTML)を読み込み、デフォルトのDTDアドレス(リモートサーバへのW3ポイント)場合、サーバから毎回読んでいる場合、望ましくないとバインドされて、読み込み速度のネットワークカードになるにも起因するカードに。

DTD参照の最適化、ローカルDTDに同じダウンロード:

解析速度を向上させるために、ローカルDTDにダウンロードしたファイルがベストプラクティスですので、あなたがQBlogソースプロジェクトを見れば、そのようなディレクトリが存在します。

 

また、ローカルパスへのリモートパスを変更するために、我々は彼らのXmlUrlResolverクラスを実現:ここCYQ.Dataは、実装コードであります:

 

実際には、ローカルファイルへのURIパスを書き換えられ、継承されました。

QBlog歴史的タスクでは、DTDの捕獲はかなり重い話題です 

問題は重く持っていたような質問DTD、非常に少し関連する情報、およびHTMLをロードするために使用するXmlDocumentは、DTDの参照が発生したために、それはほとんど、それらの年と相まって答え、限られた知識を発見されていません。

さらに驚くべき方法をDTDについての関連情報については、その教育や.NETの本を教えの全体フィールド、有名ではありません。

HTML形式の先生があなたを教えるために、どのような物事の最初の行為から話しませんか?

XMLはあなたに教える先生は、名前空間とDTDから話しませんか?

だから、DTDは、それは何ですか?

独自の検索キーワード「DTD」の公式長い説明を参照してください。

個人的な理解は簡単に言えば:XMLの文法的な制約は(あなたがプレイできるようにあなたにゲームのルールを投げる)です。

HTMLはまた、XMLの拡張に基づいているので、HTMLにも等しく適用可能です。

DTDの下に理解表要素例のHTML: 

テーブルのHTML、通常の場合、我々はすべてそれがTRた共通子ノード、TBODY知っています。

あなたはTXX、tmdxxまたはtmdxxxを持つことができないということ? 

答案是你可以乱加,但那是无效的,浏览器是会忽略的,因为dtd里没有定义。

如果你下载DTD到本地,可以搜到对table的语法有这么一行:

<! ELEMENT table     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+)) >

大语就是元素table的子级只能有"caption,(col、colgroup)、 thread、tfoot、(tbody,tr)“

而?*+ |就是正则里的0或1次;0或N次,1或N次,x或Y。

那么Table表格都能有什么属性呢?

<! ATTLIST table
  %attrs;
  summary     %Text;         #IMPLIED
  width       %Length;       #IMPLIED
  border      %Pixels;       #IMPLIED
  frame       %TFrame;       #IMPLIED
  rules       %TRules;       #IMPLIED
  cellspacing %Length;       #IMPLIED
  cellpadding %Length;       #IMPLIED
  align       %TAlign;       #IMPLIED
  bgcolor     %Color;        #IMPLIED
  
>

语法读起来,基本就是: 

summary 文字 默认(可选的)

width    长度   默认(可选的)

%Text,这里的%是个变量,往上可找一个定义:

<! ENTITY % Text "CDATA" >

语法基本上就是:CData是指字符串数据,然后把它定义为 % Text,然后其它地方引用就用%Text表示CData就是字符串了。


Html之所以为Html,那是因为有一个w3标准,用dtd给定义了所有的Html标签的元素及属性,所以A元素才有的href,Img元素有了src。

我们再回望:

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

意思是引入DTD文档,html指文档对html根元素开始生效,然后Public按字面意思理解,接着双引号的内容是一个随意起的名称,之后是一个DTD的路径。


以上说了这么多,大伙对DTD应该有一些了解了。

XSD(XML Schemas Definition)又出来了

上面刚说完,怎么又扯上XSD了,话说某组织觉的DTD在数据类型的约束上不够细腻,只有字符类型,而没有int,float,bool,date等,于是整出了另一个约束规范,就叫XSD了。

在哪可见XSD:

1: VS新建项时,可见:

 

2:Web.config的约束文件: DotNetConfig.xsd

对于web.config,一开始我以为采用dtd约束,找了三分钟才发现,微软就采用了xsd来约束,而不是dtd。

ただ、パス:C:\プログラムファイル(インストールディレクトリ)\マイクロソフトのVisual Studio 8のXML \スキーマ\ \ DotNetConfig.xsd

開いている場合は、XMLや文法の束であります:

 

制約構文のxsdアーキテクチャ、理解するために読んでいる場合、Web.configファイルに最も権威のあるガイド:どのようなweb.configファイルの詳細な記事、雲です、あなたが読んで、または便利な雲を行くことができない場合。 

もちろん、私はその後、学ぶキーワードを検索したい「XSD文法。」

要約:

これは百科事典ではありませんので、ちょうどその時点に私の頭の知識アーカイブを書き、その、文法のより包括的な知識が、また、関連するキーワードのための独自の検索越えて行くために努力しています。

 

ます。https://my.oschina.net/secyaher/blog/274159で再現

おすすめ

転載: blog.csdn.net/weixin_33922670/article/details/91966791