Мне нужно создать некоторые правила в .xsd или .dtd для этих случаев:
- Название песен не может повторяться. (Я не уверен, сделал ли я это в своем коде, пожалуйста, проверьте)
- комментарии к элементам и жанр могут быть необязательными, остальные обязательны. (Я не уверен, сделал ли я это в своем коде, пожалуйста, проверьте)
- Всего существует 3 типа значений жанра стихии: поп, рок и джаз. (Я уверен, что сделал это в своем коде, пожалуйста, проверьте)
Это мой код, но я получаю эти ошибки от http://www.xmlvalidation.com/ в XML-документ:
7: 60 Attribute "xmlns" must be declared for element type "catalog".
7: 60 Attribute "xmlns:xsi" must be declared for element type "catalog".
7: 60 Attribute "xsi:schemaLocation" must be declared for element type "catalog".
каталог.XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catalog SYSTEM "catalog.dtd">
<catalog
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLoc ation="http://www.w3schools.com catalog.xsd">
<song>
<name2>Bed of Roses</name2>
<artist>Bon Jovi</artist>
<album>Cross Road</album>
<year>1995</year>
<genre>rock</genre>
<comments>Good song</comments>
<path>C://music/bon jovi</path>
</song>
<song>
<name2>Fly Away from here</name2>
<artist>Aerosmith</artist>
<album>Just Push Play</album>
<year>2001</year>
<genre>rock</genre>
<comments>Good song</comments>
<path>C://music/aerosmith</path>
</song>
<song>
<name2>Jossie</name2>
<artist>Blink 182</artist>
<album>Blink 182</album>
<year>2001</year>
<genre>pop</genre>
<comments>Good song</comments>
<path>C://music/blink 182</path>
</song>
<song>
<name2>Want you bad</name2>
<artist>The Offspring</artist>
<album>Conspiracy of One</album>
<year>2000</year>
<genre>pop</genre>
<comments>Good song</comments>
<path>C://music/the offspring</path>
</song>
<song>
<name2>The One that you love</name2>
<artist>Air Supply</artist>
<album>The One that you love</album>
<year>1981</year>
<genre>pop</genre>
<comments>Good song</comments>
<path>C://music/air supply</path>
</song>
</catalog>
каталог.DTD
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT catalog (song+)>
<!ELEMENT song (name2,artist,album,year,genre,comments,path)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT name2 (#PCDATA)>
<!ELEMENT artist (#PCDATA)>
<!ELEMENT album (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT genre (#PCDATA)>
<!ELEMENT comments (#PCDATA)>
<!ELEMENT path (#PCDATA)>
каталог.XSD
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="catalog">
<xs:complexType>
<xs:sequence>
<xs:element name="song" maxOccurs="5">
<xs:complexType>
<xs:sequence>
<xs:element name="name2" minOccurs="1"type="xs:string"/>
<xs:element name="artist" minOccurs="1" type="xs:string"/>
<xs:element name="album" minOccurs="1" type="xs:string"/>
<xs:element name="year" minOccurs="1" type="xs:integer"/>
<xs:element name="genre" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="pop"/>
<xs:enumeration value="rock"/>
<xs:enumeration value="jazz"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="comments" minOccurs="0" type="xs:string"/>
<xs:element name="path" minOccurs="1" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>