Для моего онлайн-класса по XML мне было поручено завершить этот урок.
Дженна работает над созданием библиотеки DVD, где она может перечислить все имеющиеся у нее DVD. Некоторые из них она купила сама, другие были подарками от ее мамы, папы, сестры, дедушки и бабушки. Корневым элементом для ее библиотеки является dvdlibrary с одним или несколькими элементами dvd. У каждого DVD есть название, описание, год, компания, любимые персонажи, любимые бонусы и информация о покупке. Каждый из элементов персонажа имеет один или несколько элементов персонажа. Каждый из ее бонусных элементов имеет одну или несколько функций. Ее купленные элементы имеют цену, местоположение и дату. Элемент dvd имеет два атрибута, бонусный элемент имеет один атрибут, а купленный элемент не имеет атрибутов.
Дженна хочет создать таблицу стилей XSLT, чтобы использовать ее для привлекательного отображения информации о коллекции DVD. Она уже создала таблицу стилей CSS для этой страницы.
Выполните следующие действия:
- С помощью текстового редактора откройте файл dvdlibrary.txt. Просмотрите содержимое, чтобы ознакомиться со структурой файла XML.
- Добавьте комментарий в прологе с описанием файла, вашим именем, датой и именем файла.
- Сохраните файл как dvdlibrary.xml.
- Добавьте инструкцию обработки после секции комментариев, которая присоединяет таблицу стилей dvdlibrary.xsl к этому документу XML. Закройте файл, сохранив ваши изменения.
- Используя ваш текстовый редактор, откройте файл dvdlibrarytxt.xsl. Введите свое имя и дату в разделе комментариев к файлу и сохраните его как dvdlibrary.xsl.
Перейдите в файл dvdlibrary.xsl в текстовом редакторе и перейдите в корневой шаблон. Добавьте в шаблон следующие команды:
<html>
<head>
<title>Jenna's DVD Collection</title>
<link href="dvdlibrarystyles.css"
rel="stylesheet" type="text/css" />
</head>
<body>
<header>
<h1>Jenna's DVD Collection</h1>
</header>
</body>
</html>
В корневом шаблоне непосредственно над тегом </body>
введите следующее:
<section>
<h1>DVD List</h1>
dvd template
</section>
где шаблон dvd применяет шаблон для пути dvdlibrary / dvd, отсортированный по элементу title.
Создайте шаблон для элемента dvd для отображения информации о каждом фильме. Добавьте следующий HTML-код в шаблон:
<article>
</article>
В тегах <article></article>
введите следующее, чтобы отобразить заголовок и список символов для каждого DVD:
<h1>title</h1>
<h2>Featuring: [character] [character] …</h2>
где title - это значение элемента title, а [персонаж] [символ]… - список символов в фильме. (Подсказка: используйте инструкцию for-each для прохождения каждого символьного элемента в пути символов / символов.)
Под заголовком h2 включить следующее:
<p>
Bonus Features:
<span>
feature/feature/ …
</span>
</p>
где feature / feature /… - список значений характеристик в пределах пути бонуса / функции, разделенных символом «/». (Подсказка: используйте инструкцию for-each с путем бонус / признак и отобразите значение узла контекста в элементе for-each.)
Под закрывающим тегом </p>
вставить следующую таблицу:
<table>
<tr>
<th>Price</th>
<th>Location</th>
<th>Date</th>
</tr>
<tr>
<td>price</td>
<td>location</td>
<td>date</td>
</tr>
</table>
где цена, местоположение и дата - это значения элементов цены, местоположения и даты.
Сохраните ваши изменения в файле.
Создайте результирующий документ, используя редактор XML или веб-браузер. Убедитесь, что макет и содержимое каждого элемента соответствуют приведенным на рисунке ниже:
Отправьте заполненные файлы своему инструктору.
И, похоже, у меня все еще есть проблема с кодом, и я попытался добавить лист XSD, где я объявил все элементы, но это не сработало.
Это то, что я имею до сих пор:
Это мой XML:
<?xml version="1.0" encoding="UTF-8"?>
<!--
This document contains data about Jenna's DVD library.
Author: Julia Turek
Date: 6/25/2018
Filename: dvdlibrary.xml
Supporting File: dvdlibrary.xsl
-->
<?xml-stylesheet type="text/xsl" href="dvdlibrary.xsl" ?>
<dvdlibrary>
<dvd isbn="1-4157-4399-0" from="mom" >
<title>Kung Fu Lizard</title>
<description>Jo defends his training academy against the evil Mighty Moose, Benny.</description>
<year>2011</year>
<company>Cloud Nine Productions</company>
<characters>
<character>Jo, the Kung Fu Lizard</character>
<character>Lisa, the Fighting Kricket</character>
<character>Benny, the Evil Mangler Moose</character>
</characters>
<bonus num="2">
<feature>Kung Fu Academy</feature>
<feature>Cast Commentary</feature>
</bonus>
<purchased>
<price>19.94</price>
<location>Best DVDs in Town</location>
<date>2012-10-03</date>
</purchased>
</dvd>
<dvd isbn="1-5158-4399-0" from="mom">
<title>Planet of the Ogres</title>
<description>Bilbo had always dreamt he was from another planet. Now he finds out that he is. Join him as he meets his destiny to save his homeworld.</description>
<year>2012</year>
<company>MGM</company>
<characters>
<character>Bilbo, future leader of the Ogres</character>
<character>Kilnary, leader of the invading Tigres</character>
<character>Wicket, leader of the Morkian army</character>
</characters>
<bonus num="3">
<feature>Making Of Featurette</feature>
<feature>Theatre Trailers</feature>
<feature>PC downloadable version</feature>
</bonus>
<purchased>
<price>17.99</price>
<location>Mallmart</location>
<date>2013-10-06</date>
</purchased>
</dvd>
<dvd isbn="1-9955-8745-0" from="mom">
<title>Mountain King</title>
<description>Freda is the daughter of the Mountain King. As the only heir, will she break with tradition and be the first Mountain Queen?</description>
<year>2014</year>
<company>Sunny Entertainment</company>
<characters>
<character>Freda, daughter of the Mountain King</character>
<character>Toru, the Mountain King</character>
<character>Ella, the Enchanted Advisor</character>
<character>Bopo, the Monkey Bone Wizard</character>
</characters>
<bonus num="2">
<feature>Cast Commentary</feature>
<feature>Mountain King Music Video</feature>
</bonus>
<purchased>
<price>14.99</price>
<location>Movies For Everyone</location>
<date>2015-11-07</date>
</purchased>
</dvd>
</dvdlibrary>
Это мой XSL
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Project 5
Tutorial Project
DVD Library XSLT Style Sheet
Author: Julia Turek
Date: 6/28/18
Filename: dvdlibrary.xsl
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
doctype-system="about:legacy-compat"
encoding="UTF-8"
indent="yes" />
<xsl:template match="/">
<html>
<head>
<title>Jenna's DVD Collection</title>
<link href="dvdlibrarystyles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<header>
<h1>Jenna's DVD Collection</h1>
</header>
<section>
<h1>DVD List</h1>
<xsl:apply-templates select="dvdlibrary/dvd">
<xsl:sort select="title" />
</xsl:apply-templates>
<xsl:apply-templates select="dvd">
<article>
<xsl:for-each select="dvd/title">
<h1>
<xsl:value-of select="title"/>
</h1>
</xsl:for-each>
<xsl:for-each select="chracters/character">
<h2>
<xsl:value-of select="character"/>
</h2>
</xsl:for-each>
<p>
Bonus Features:
<span>
<xsl:for-each select="bonus/featuress"/>
</span>
</p>
<table>
<tr>
<th>Price</th>
<th>Location</th>
<th>Date</th>
</tr>
<tr>
<td>price</td>
<td>location</td>
<td>date</td>
</tr>
</table>
</article>
</xsl:apply-templates>
</section>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Это мой CSS:
* {
margin: 0px;
list-style: none;
}
header, section, article {
display: block;
}
/* Body styles */
body {
background-color: white;
font-family: Verdana, Geneva, sans-serif;
margin: 10px auto;
width: 920px;
}
header h1 {
color: white;
font-size: 2.8em;
font-weight: normal;
text-shadow: rgb(90, 127, 0) 0px 0px 25px;
}
header h2 {
font-size: 1.5em;
font-weight: normal;
color: rgb(90, 127, 0);
}
section {
margin-top: 25px;
}
section > h1 {
font-weight: normal;
font-size: 1.9em;
}
article {
border: 1px solid black;
margin: 10px 10px;
padding: 10px;
width: 400px;
float: left;
box-shadow: rgb(151, 151, 151) 8px 8px 15px;
}
article > h1, article > h2 {
background-color: rgb(190, 235, 110);
}
article > h1 {
font-size: 1em;
font-weight: normal;
padding: 10px 0px 0px 10px;
}
article > h2 {
font-size: 0.7em;
font-weight: normal;
padding: 0px 0px 10px 10px;
border-bottom: 1px solid black;
}
article > p {
font-size: 0.7em;
margin: 4px 0px 0px 0px;
}
article span {
color: rgb(151,151, 151);
}
table {
border-collapse: collapse;
margin: 10px 0px 5px 0px;
}
td, th {
border: 1px solid rgb(191, 191, 191);
font-weight: normal;
font-size: 0.7em;
padding: 3px;
text-align: center;
}
th {
background-color: rgb(231, 231, 231);
}
Но я продолжаю получать сообщение об ошибке:
cvc-elt.1: не удается найти объявление элемента 'dvdlibrary'.