私はXMLクラスに入っています。XMLを使って現在の日付を取得する
クラスがスケジュールに追加される日付をテストして、1964年9月1日以降、現在の日付の前または今日にあることを確認します。
XLSTコード:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="DateAddedType">
<xs:restriction base="xs:dateTime">
<xs:minInclusive value="1964-09-01T00:00:00" />
<!--<xs:assert test="$value le current-date()"/>-->
<xs:maxInclusive value="Date.NowT00:00:00"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DepartmentType">
<xs:restriction base="xs:string">
<xs:pattern value ="[A-z]{2,5}&?" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name ="DeptType2">
<xs:restriction base="xs:string">
<xs:pattern value ="[A-Z][A-Z]|[A-Z][A-Z][A-Z&]|[A-Z][A-Z][A-Z][A-Z&]" />
</xs:restriction>
</xs:simpleType>
<xs:element name="Courses">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Course">
<xs:complexType>
<xs:sequence>
<xs:element name="Department" type="DepartmentType" />
<xs:element name="CourseNumber" type="xs:string" />
<xs:element name="Title" type="xs:string" />
<xs:element name="Description" type="xs:string" />
<xs:element name="Credits" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="Prerequisites" type="xs:string" />
<xs:element name="DateAdded" type="DateAddedType" />
<xs:element minOccurs="0" maxOccurs="unbounded" name="Schedule">
<xs:complexType>
<xs:sequence>
<xs:element name="Season" type="xs:string" />
<xs:element name="Year" type="xs:string" />
<xs:element name="ItemNumber" type="xs:string" />
<xs:element name="Department" type="DepartmentType" />
<xs:element name="CourseNumber" type="xs:string" />
<xs:element name="Section" type="xs:string" />
<xs:element name="Room" type="xs:string" />
<xs:element name="MeetingDays" type="xs:string" />
<xs:element name="StartTime" type="xs:dateTime" />
<xs:element name="EndTime" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XMLコード:
<?xml version="1.0" encoding="UTF-8"?>
<Courses xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Courses.xsd">
<Course>
<Department>CIS</Department>
<CourseNumber>141</CourseNumber>
<Title>intro to access</Title>
<Description>db stuff</Description>
<Credits>5</Credits>
<Prerequisites>108, 123</Prerequisites>
<DateAdded>2011-07-01T00:00:00</DateAdded>
</Course>
<Course>
<Department>cap</Department>
<CourseNumber>102</CourseNumber>
<Title>Nutrition for the Food Service Professional</Title>
<Description>Nutrition for the Food Service Professional</Description>
<Credits>5</Credits>
<DateAdded>2001-01-01T00:00:00</DateAdded>
</Course>
<Course>
<Department>cap</Department>
<CourseNumber>103</CourseNumber>
<Title>Applied Food Service Sanitation</Title>
<Description>Applied Food Service Sanitation</Description>
<Credits>5</Credits>
<DateAdded>2001-01-01T00:00:00</DateAdded>
</Course>
<Course>
<Department>cap</Department>
<CourseNumber>104</CourseNumber>
<Title>Supervision in the Hospitality Industry</Title>
<Description>Supervision in the Hospitality Industry</Description>
<Credits>5</Credits>
<DateAdded>2001-01-01T00:00:00</DateAdded>
</Course>
<Course>
<Department>cis</Department>
<CourseNumber>145</CourseNumber>
<Title>Introduction to access</Title>
<Description>Intro to access</Description>
<Credits>5</Credits>
<DateAdded>2001-01-01T00:00:00</DateAdded>
<Schedule>
<Season>Fall</Season>
<Year>2009</Year>
<ItemNumber>0000</ItemNumber>
<Department>cis</Department>
<CourseNumber>145</CourseNumber>
<Section>b</Section>
<Room>34107</Room>
<MeetingDays>daily</MeetingDays>
<StartTime>1899-12-30T08:00:00</StartTime>
<EndTime>1899-12-30T08:50:00</EndTime>
</Schedule>
<Schedule>
<Season>Winter</Season>
<Year>2010</Year>
<ItemNumber>1000</ItemNumber>
<Department>cis</Department>
<CourseNumber>145</CourseNumber>
<Section>d</Section>
<Room>34106</Room>
<MeetingDays>daily</MeetingDays>
<StartTime>1899-12-30T10:00:00</StartTime>
<EndTime>1899-12-30T10:50:00</EndTime>
</Schedule>
</Course>
<Course>
<Department>cis</Department>
<CourseNumber>160</CourseNumber>
<Title>Introduction to Programming</Title>
<Description>Introduction to practices of programming</Description>
<Credits>5</Credits>
<DateAdded>2001-01-01T00:00:00</DateAdded>
<Schedule>
<Season>Winter</Season>
<Year>2010</Year>
<ItemNumber>1200</ItemNumber>
<Department>cis</Department>
<CourseNumber>160</CourseNumber>
<Section>e</Section>
<Room>34107</Room>
<MeetingDays>daily</MeetingDays>
<StartTime>1899-12-30T11:00:00</StartTime>
<EndTime>1899-12-30T11:50:00</EndTime>
</Schedule>
</Course>
<Course>
<Department>cis</Department>
<CourseNumber>245</CourseNumber>
<Title>Applications in Access</Title>
<Description>Developing applications in access</Description>
<Credits>5</Credits>
<DateAdded>2001-01-01T00:00:00</DateAdded>
<Schedule>
<Season>Winter</Season>
<Year>2010</Year>
<ItemNumber>1100</ItemNumber>
<Department>cis</Department>
<CourseNumber>245</CourseNumber>
<Section>c</Section>
<Room>34128</Room>
<MeetingDays>daily</MeetingDays>
<StartTime>1899-12-30T09:00:00</StartTime>
<EndTime>1899-12-30T09:50:00</EndTime>
</Schedule>
</Course>
<Course>
<Department>cis</Department>
<CourseNumber>266</CourseNumber>
<Title>VB.Net Applications</Title>
<Description>Applications in vb.net</Description>
<Credits>5</Credits>
<DateAdded>2001-01-01T00:00:00</DateAdded>
<Schedule>
<Season>Spring</Season>
<Year>2010</Year>
<ItemNumber>3525</ItemNumber>
<Department>cis</Department>
<CourseNumber>266</CourseNumber>
<Section>c</Section>
<Room>34107</Room>
<MeetingDays>daily</MeetingDays>
<StartTime>1899-12-30T09:00:00</StartTime>
<EndTime>1899-12-30T09:50:00</EndTime>
</Schedule>
</Course>
<Course>
<Department>cna</Department>
<CourseNumber>250</CourseNumber>
<Title>Routing and Switching</Title>
<Description>Introduction to Routing and Switching to design, build, and maintain small to medium-size networks.</Description>
<Credits>5</Credits>
<Prerequisites>cna-145</Prerequisites>
<DateAdded>2001-01-01T00:00:00</DateAdded>
</Course>
<Course>
<Department>cna</Department>
<CourseNumber>260</CourseNumber>
<Title>Windows Scripting</Title>
<Description>Windows Scripting</Description>
<Credits>5</Credits>
<DateAdded>2001-01-01T00:00:00</DateAdded>
</Course>
<Course>
<Department>cs</Department>
<CourseNumber>142</CourseNumber>
<Title>Object Oriented Programming I</Title>
<Description>Object Oriented Programming I</Description>
<Credits>5</Credits>
<Prerequisites>cis-160, cis-168</Prerequisites>
<DateAdded>2001-03-01T00:00:00</DateAdded>
</Course>
</Courses>
dateAddedフィールドがテストされているものです。 Equivelant to [DateAdded> = 9/1/1964 AND DateAdded < =今日] MinInclusiveを利用して1964年の日付をテストし、今日の日付に対してmaxInclusiveを利用することにしましたが、DTDを使用してスキーマはい、それは愚かですが、それ以来はすることができます、インストラクターは私たちがそのようにそれをやりたいです。
しかし、彼はDTDファイルを使用するXSLTファイルで検証するXMLファイルの処理方法については説明していません。私たちは、DTDとXMLをXSLTで実行しましたが、3つすべてではありません。
私はそれは、「スキーマを操作するためにDOMを使う」のヒントを推測します。つまり、検証のために変更されたスキーマを使用する前に、現在の日付を含むようにスキーマ自体を変更する必要があります。 DOMを使って行うのは面白いですが、明らかにXSLTの仕事です。 –
私はそれがばかげていることを知っていますが、インストラクターは私たちにそれを与えることを望んでいます。彼は本質的に最も難しいものを学ばせて、同じことを得るより簡単な方法を示しています。加えて、これは余分なクレジットなので、ヒントは少なく、解決するのは難しいです。 –