[学校] エクササイズ仕様のDTD構造, XMLスキーマ

DTDと内XMLSCHEMAと宿題​​仕様構造に関するこの記事 “エクササイズ” 彼の, あなたが相談することができます.

スレッド: レッツレポートカード 1 学生には、: フルネーム, クラス, アドレス, セックス, 生年月日と転写産物, テーブルの各レコードには、: STT, サブジェクト名, 学期 1, 学期 2, TBポイント通年. 具体的な内容と構造であること (DTDまたはXMLSCHEMAに従ってください) この点パターンに対応するXML文書.

賞:
* 仕様内容: これは、上のレポートカードのXMLコンテンツを含む文書であります. これは、基準仕様構造DTDまたはXMLSCHEMAを使用することができます.
私たちのカードの詳細についてはに分けることができます 2 レポートカードの主な部分は、学生の情報であり、 (名前を含みます, クラス,…) および転写産物 (対象の点を含みます).

注意: そのため、音声の問題 “DTDまたはXMLSCHEMAに従ってください” だからすべてに、あなたがフォロー 1 で 2 DTDまたはっぽXMLSCHEMAは何ですか, 私は両方やりました 2, どちらかあなたが好む、を選択します.

<?xml version = "1.0" ?>

<!-- if you use dtd-->
<!DOCTYPE PhieuDiem SYSTEM "phieudiemhocsinh.dtd">
<!-- end use dtd-->

<!-- if you use schema-->
<PhieuDiem xmlns = "http://www.w3school.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "phieudiemhocsinh.xsd">
<!-- end use chema-->

<PhieuDiem>
	<SinhVien>
		<HoTen>Nguyen Van Quan</HoTen>
		<Lop>KTPMK10B</Lop>
		<DiaChi>Bac Ninh</DiaChi>
		<GioiTinh>Nam</GioiTinh>
		<NgaySinh>31/12/1992</NgaySinh>
	</SinhVien>
	
	<BangDiem>
		<MonHoc>
			<STT>1</STT>
			<TenMon>XML</TenMon>
			<DienKy1>10</DienKy1>
			<DienKy2>10</DienKy2>
			<DienTB>10</DienTB>
		</MonHoc>
		
		<MonHoc>
			<STT>2</STT>
			<TenMon>Java</TenMon>
			<DienKy1>10</DienKy1>
			<DienKy2>10</DienKy2>
			<DienTB>10</DienTB>
		</MonHoc>
	</BangDiem>
</PhieuDiem>

* DTDに対応する構造の仕様

<?xml version="1.0"?>
<!DOCTYPE PhieuDiem[
	<!ELEMENT PhieuDiem(SinhVien, BangDiem)>
	
	<!ELEMENT SinhVien(HoTen, Lop, DiaChi, GioiTinh, NgaySinh)>
	<!ELEMENT BangDiem(MonHoc+)>
	
	<!ELEMENT HoTen(#PCDATA)>
	<!ELEMENT Lop(#PCDATA)>
	<!ELEMENT DiaChi(#PCDATA)>
	<!ELEMENT GioiTinh(#PCDATA)>
	<!ELEMENT NgaySinh(#PCDATA)>
	
	<!ELEMENT MonHoc(STT, TenMon, DiemKy1, DiemKy2, DiemTB)>
	<!ELEMENT STT(#PCDATA)>
	<!ELEMENT TenMon(#PCDATA)>
	<!ELEMENT DiemKy1(#PCDATA)>
	<!ELEMENT DiemKy2(#PCDATA)>
	<!ELEMENT DiemTB(#PCDATA)>
]>

* XMLSCHEMAを対応する構造仕様

<?xml version = "1.0"?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
	<xs:element name = "PhieuDiem" type="KPhieuDiem"/>
	
	<xs:complexType name = "KPhieuDiem">
		<xs:sequence>
			<xs:element name = "SinhVien" type = "KSinhVien"/>
			<xs:element name = "BangDiem" type = "KBangDiem"/>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name = "KieuSinhVien">
		<xs:sequense>
			<xs:element name = "HoTen" type = "xs:string"/>
			<xs:element name = "Lop" type = "xs:string"/>
			<xs:element name = "DiaChi" type = "xs:string"/>
			<xs:element name = "GioiTinh">
				<xs:simpleType>
					<xs:restriction base = "xs:string"/>
					<xs:pattern value = "Nam|Nu"/>
				</xs:simpleType>
			</xs:element>
			<xs:element name = "NgaySinh" type = "xs:date"/>
		</xs:sequense>
	</xs:complexType>
	
	<xs:complexType name = "KBangDiem">
		<xs:element name = "MonHoc" type = "KMonHoc"/>
	</xs:complexType>
	
	<xs:complexType name = "KMonHoc">
		<xs:sequense>
			<xs:element name = "STT" type = "xs:integer"/>
			<xs:element name = "TenMon" type = "xs:string"/>
			<xs:element name = "DiemKy1" type = "KDiem"/>
			<xs:element name = "DiemKy2" type = "KDiem"/>
			<xs:element name = "DiemTB" type = "KDiem"/>
		</xs:sequense>
	</xs:complexType>
	
	<xs:simpleType name = "KDiem">
		<xs:restriction base = "xs:double"/>
		<xs:minExclusive value = "0.0"/>
		<xs:maxExclusive value = "10.0"/>
	</xs:simpleType>
</xs:schema>