オリジナルます。https://blog.csdn.net/lengxiao1993/article/details/77914155
Mavenは多くのオープンソースプロジェクトは、彼らのビルドツールとしてMavenを使用してありますので、Javaの開発者は、ビルドツールをバイパスすることは困難です。読み込まMavenのPOMファイルは、プロジェクトの依存関係を理解し、アプローチの構築の重要な部分です。しかし、初心者はそれを(ネットワークからコーミングデータ)の明確で分かりやすい説明を行って混乱しPOMファイルを、頭になります
予備知識
- 一般的なXMLタグやラベルに理解ネストされた意味の間のツリー構造
- POM(プロジェクト・オブジェクト・モデル)ファイルを学びます
POMファイルヘッダの例
-
<プロジェクトのxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"のxmlns = "http://maven.apache.org/POM/4.0.0" のxsi:schemaLocationの= "のhttp:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
初心者は混乱を次のように上記の点の内容が表示されるはずです。
-
xmlns:xsi
、xmlns
、xsi:schmeLocation
その値が同じURLでない理由の意味あるものの性質に似ていますどの -
URLは、ファイルを解析するかどうかを、アクセスすることができますいくつかのリソースは、対応するURLリソースをダウンロードする必要があります対応します
のがのxmlnsの役割についてお話しましょう
XML文書が含まれている場合は、次の二つの定義は異なりますが、あなたが呼ぶとき、それは判断できないので、同じ要素名は、XMLパーサーは、未解決で document.getElementsByTagName("book")
返される要素に応じ。
-
<! -本明細書に記載のテーブル要素がテーブルである- > <TABLE> <TR> <TD>りんご</ TD> <TD>バナナ</ TD> </ TR> </ TABLE> <! -ここでテーブル要素ホーム・テーブルの説明は、 - > <TABLE> <名前>アフリカのコーヒーテーブル</名前> <幅> 80 </幅> <長さ> 120 </長さ> </ TABLE>
彼らは接頭辞を追加するために名前を与えられている場合はもちろん、名前の競合の問題を解決することができます。
-
<! -ここに記載さtable要素がテーブルである- > <H:表> < - -を追加しました接頭辞H!> <H:TR> <H:TD>りんご</ H:TD> < H:TD>バナナ</ H:TD> </ H:TR> </ H:表> <! -ここでは、テーブル要素が記述された表である- > <F :!テーブル> < -追加接頭F - > <F:名>アフリカコーヒーテーブル</ F:名> <F:幅> 80 </ F:幅> <F:長さ> 120 </ F:長さ> </ F:表>
、多くの要素を持っているだけプレフィックスを持っているが、文書で、あなたは完全に名前の競合をの問題を回避することはできません。
- お互いのXML文書はXIncludeのことである、注意 外部entitesが 相互に包括的または参照を実現。
この時点では、名前空間が生まれた、私たちは、要素に関連付けられた文字列のグローバル一意性を保証することができ、要素の名前空間が非常に長くなります定義することができます。これは、競合を命名回避することができます。
しかし、グローバルに一意の長い文字列は、それが私たちの最も一般的なURIのウェブサイトは、私は通常、訪問URLである一方で、統一資源識別子(統一資源識別子、URI)を使用するよりも最良の方法であることを確認する方法について説明します。
xmlns:名前空間接頭辞=「名前空間URI」
その私たちの例に適用されます:
-
<! -本明細書に記載の表要素がテーブルである- > <H:表のxmlns:H = "http://www.w3.org/TR/html4/"> <H:TR> <H:TD >りんご</ H:TD> <H:TD>バナナ</ H:TD> </ H:TR> </ H:表> < -ここでは、テーブル要素が記述された表がある- >! <F :表のxmlns:Fは= "http://www.w3school.com.cn/furniture"> <F:名>アフリカコーヒーテーブル</ F:名> <F:幅> 80 </ F:幅> <F :長さ> 120 </ F:長さ> </ F:表>
- だから、名前空間識別子のURIの役割は唯一のユニークな、それが対応するリソースを必要としない、またはファイルがアクセスできるようにすることです!しかし、企業の多くは、名前空間のURI名前空間が情報を含むWebページをポイントすることができますがあります
文書の当社POMヘッドに戻って、あなたは見つけるでしょう http://www.w3.org/2001/XMLSchema-instanceは、あなたが訪問する場合は、通常のページへのアクセス権を持っていますが、 //maven.apacheます。http。 ORG / POM / 4.0.0 「ページが見つかりませんエラーが出るでしょう、ページを取得していません。project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlnsプレフィックスは意味の要素がない表示されます
-
<プロジェクトのxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"のxmlns = "http://maven.apache.org/POM/4.0.0" のxsi:schemaLocationの= "のhttp:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
靴は、以前のプロジェクト要素なし接頭ことに慎重に留意されたいです。実際にデフォルトの名前空間(デフォルトのネームスペース)が使用されています。構文は次のとおりです。
<がelementNameのxmlns = "名前空間URI">
たとえば、私たちは、プロジェクトの要素と、以下の例を定義します
<テーブルのxmlns = "http://www.w3.org/TR/html4/"> <TR> <TD>りんご</ TD> <TD>バナナ</ TD> </ TR> </ TABLE>
デフォルトの名前空間は、その名前空間に属する要素の内部をデフォルトとしますサブ要素の役割で使用し、我々は彼らのために11名前空間接頭辞を追加する必要はありません。
xmlns:XSI与XSI:schemaLocationの
さて、ファイルヘッダの残りの部分を見ては、より複雑な部分を探します。
-
xmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" のxsi:schemaLocationの= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org 「/maven-v4_0_0.xsd
私たちが理解することができ、以前の知識によると、 xmlns:xsi
名前空間接頭辞定義 xsi
に対応する一意の文字列を http://www.w3.org/2001/XMLSchema-instance
。しかし、読者はこれがいることがわかります xmlns:xsi
別のXML文書に表示されているように見えるだろう。これは、ためている xsi
XSDのための業界のデフォルト((名前空間XMLスキーマ定義)ファイルとなっています。多くの場合、スキーマファイルと呼ばれるXSDファイルは、()は、XML文書の構造を定義するために使用されます。
- 注釈:XSDファイルの内容に基づいて別のXMLファイルを解析するXMLパーサ、ファイル構造一貫性のXSDファイルを定義したか否かを判定する。XSDファイルはXML文書フォーマットまたはカスタマイズすることができる文法チェッカとして理解することができます。
したがって、上記の理解と、その後に見えます
XSI:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
このライン上の構文は、実際にはそう、 xsi:schemaLocation = "键" “值”
それは宇宙のペアで区切られた要素の下の値のschemaLocation XSIの名前空間です。
-
「キー」の前に http://maven.apache.org/POM/4.0.0は、 [名前空間]が、唯一のグローバルに一意の文字列を参照してください。
-
値が[XSD場所URI]を指す後、この値は、XSDファイルを対応する名前空間の前の位置を示し、XMLパーサーは、XSDファイル取得し、この情報を使用できるようにXSDファイルによって
名前空間内のすべて のhttp:/ /maven.apache.org/POM/4.0.0 コンテンツ要素は、構造を確認するので、この値は、アクセス可能でなければならない、とXSDファイルの内容へのアクセス