朝鮮に国号を改称した李成桂は新たな法制の整備を急ぎ、また漢陽（今のソウル）への遷都を進めた。崇儒廃仏（儒教を崇拝し、仏教を排斥する）政策をとり、儒教の新興と共に仏教の抑圧を開始した。しかし、この政策は李成桂が晩年仏門に帰依したため一時中断され、本格的になるのは李成桂の亡くなった後の第4代世宗の時代になる。仏教弾圧の理由には、前王朝高麗の国教が仏教であったということが大きな理由の一つとして挙げられる。李成桂は新王朝の基盤を固めるため、八男・李芳碩を跡継ぎにしようと考えていたが、他の王子達がそれを不満とし、王子同士の殺し合いまでに発展した。1398年に起きた第一次王子の乱により跡継ぎ候補であった李芳碩が五男・李芳遠（後の太宗）により殺害され、このとき病床にあった李成桂は、そのショックで次男の李芳果に譲位した。これが第2代定宗である。しかし定宗は実際は李芳遠の傀儡に過ぎず、また他の王子達の不満も解消しないことから1400年には四男・李芳幹により第二次王子の乱が引き起こされる。李成桂はこれによって完全に打ちのめされ、仏門に帰依する事になる。一方、第二次王子の乱で反対勢力を完全に滅ぼした李芳遠は、定宗より譲位を受け、第3代太宗として即位する。太宗は、内乱の原因となる王子達の私兵を廃止すると共に軍政を整備し直し、政務と軍政を完全に切り分ける政策を執った。また、この時代は朝鮮の科挙制度、身分制度、政治制度、貨幣制度などが整備された。明に対しては徹底的な親明政策を執り、1401年には明から正式に朝鮮王の地位に冊封される。太宗は、1418年に世宗に王位を譲り上王になったが、軍権はそのまま維持し、1419年の応永の外寇と呼ばれる対馬への侵攻を指示したが、対馬国守護大名の宗貞盛の奮戦により大損害を被り、撤退した。次代の世宗、いわゆる世宗大王の時代が、朝鮮の中で政権が最も安定していた時代とされる。王権は強固であり、また王の権威も行き届いていた。一方で1422年まで太宗が上王として実質的な権力を保持していた。世宗は、まず政治制度を王の一極集中型から議政府を中心にした官僚主導の政治に切り替えた。これには世宗の健康問題もあったと言われている。また、明との関係を良好に保つための人材育成にも力を入れた。その中の作業の一環として、現在のハングルの元になる訓民正音の編纂作業が行われた。世宗の時代は31年に及び、軍事的安定と政治的安定のバランスが取れていた時代である。またこの時代に貨幣経済の浸透が進んでいった。対外的には侵攻戦争をたびたび行い、1437年には豆満江以南の女真地域を侵攻し制圧、六鎮を設置して支配した。その後も女真とは対立を続け、幾度も侵攻に乗り出している。
妥当なXML文書について詳しく説明する。XMLでは、要素に名前を付けることができ、階層構造をとることができ、スキーマ言語 (Document Type Definition など) により用途に沿うように定義されたスキーマを使うことで要素と属性の意味を公開し説明することができる。XMLのこうした特徴により、目的に応じたXMLに準拠したマークアップ言語を創るための、構文的な基礎が成り立っている。スキーマは、制約の集合を記述することにより、XML文書の構文上の規則を単に補足するのみである。スキーマは、多くの場合、要素と属性の名前を限定し、各要素が内容とするものの階層構造を規定し、属性の内容を規定する。例えば、「誕生日」という名前の要素では、「月」という名前の一つの要素と「日」という名前の一つの要素をもつことができ、「月」要素と「日」要素のそれぞれは文字列データのみをもつことができる。スキーマに定義された制約には、データ型の割り当てを含むことができる場合がある。データ型を割り当てることにより、データ型が割り当てられた情報がどのように処理できるかを、規定することができる。例えば、「月」要素の文字列データは、そのXML文書で採用したスキーマ言語の機能に準拠して、「1」から「12」までの数字のみが妥当であるという形で、定義することができる可能性がある。ここでスキーマ言語の (データ型に関する) 機能とは、おそらく特定の方法で形式にしたがって記述しなければならないということだけでなく、別のデータ型の値であるかのように処理されることを未然に防ぐことを、意味する。何らかのスキーマに準拠したXML文書は、整形式であるということに加えて、妥当 (valid) であるということが成り立つ。XMLのスキーマは、XMLの文書型 (文書の種類、文書の論理的構造) を記述したものである。多くの場合スキーマは、その文書の構造と内容に関する制約という形で表現される。XMLのスキーマは、XML仕様で規定されている、整形式XML文書としての基本的な制約に加え、それ以上の制約をXML文書に課すことができる。XMLのスキーマ言語は、標準規格のものもプロプライエタリなものも含めて、こうしたスキーマを表現するという目的のもと、数多く存在している。いくつかのスキーマ言語では、スキーマ自身をXML文書として記述する。スキーマ言語の記述能力はスキーマ言語ごとにさまざまである。例えばスキーマ言語の一つである Document Type Definition (DTD) では、XML文書がとるべき構造の主な規則として、そのDTDに準拠したXML文書で使うことができる要素の名前、要素の内容モデル、要素で指定できる属性の名前、属性の値のデータ型を、記述することができる。なお、要素の内容モデルとは、要素の内容に出現可能な要素やデータとその順番、および要素の出現回数を規定したもののことをいう。Standard Generalized Markup Language (SGML) やXMLなどの汎用的なデータ記述言語が世に出る前は、ソフトウェア設計者は、複数のプログラムの間でデータの受け渡しをするために、自分自身でファイルフォーマットを定義するか、ちょっとしたコンピュータ言語を定義しなければならなかった。このため受け渡しするデータの詳細な仕様やその他の文書を書かなければならなかったし、文書の書き手を別途に確保しなければならないこともあった。XMLが一定の構造をもち厳密な構文解析の規則をもつことで、ソフトウェア設計者は構文解析の作業を標準的なソフトウェアツール (妥当性検証器、バリデータ) に任せることができる。そしてXMLには、用途に特有の言語を開発するための一般的な、データモデル指向の枠組みがある。このためソフトウェア開発者は、比較的高水準の抽象度において、自分たちが扱うデータの規則の開発に専念するだけでよい。XML文書をスキーマに照らして妥当性検証を行うための、十分にテストされたツールが、数多く存在している。XML文書をスキーマに照らして妥当性検証を行うためのツールを、妥当性検証器 (バリデータ) という。妥当性検証器は、スキーマに表現された制約にXML文書が準拠しているかについて、自動的に妥当性検証を行う。妥当性検証器は、XMLプロセサ (XMLパーサ) に含まれていることもあれば、XMLプロセサとは別に提供されていることもある。これまでに述べたスキーマの使い方とは別の使い方も存在する。例えば、XMLエディタは、XML文書の編集を支援するためにスキーマを使うことができる。こうしたXMLエディタでは、妥当な要素名や妥当な属性名を提示することなどができる。