Я пытаюсь заставить некоторые элементы 3 разных файлов XML отображать в одной таблице через XSLT.У меня есть три записи XML и схема XSD.Мне нужно преобразовать все три XML-документа через файл XSLT в:
Создать XSLT для отображения всех моих записей.Я должен отображать только следующие поля: имя создателя, имя, название, формат, дата публикации.
Затем мне нужно упорядочить отображение по дате публикации, сначала по возрасту, и отобразить всех создателей в алфавитном порядке по фамилии (это необходимо сделать, даже если не существует нескольких создателей.
У меня естьЯ смог создать свои XML-файлы, но, честно говоря, но я понятия не имею, куда мне обратиться с моим XSLT-файлом, и я надеюсь, что кто-то может захотеть уменьшить количество слез, которые я должен пролить. Спасибо.
XSDсхема:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="catalog">
<xs:annotation>
<xs:documentation>Schema mimics bibliographic elements of MODS in a simpler form</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="catalogRecord" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="titleInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="subtitle" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--titleInfo -->
<xs:element name="nameInfo" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<!-- use the "name" field for the surname or only-name like Prince -->
<xs:element name="name" type="xs:string"/>
<xs:element name="forename" type="xs:string" minOccurs="0"/>
<xs:element name="role">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="author"/>
<xs:enumeration value="editor"/>
<xs:enumeration value="performer"/>
<xs:enumeration value="director"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="primary" type="xs:boolean" use="required"/>
</xs:complexType>
</xs:element>
<!--nameInfo -->
<xs:element name="originInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="place" type="xs:string"/>
<xs:element name="publisher" type="xs:string"/>
<xs:element name="dateIssued" type="xs:gYear"/>
<xs:element name="edition" type="xs:positiveInteger"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--originInfo -->
<xs:element name="typeOfResource">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="book"/>
<xs:enumeration value="sound recording"/>
<xs:enumeration value="film"/>
<xs:enumeration value="score"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<!--typeOfResource -->
<xs:element name="subject" type="xs:string" minOccurs="2" maxOccurs="unbounded">
<!--you may use free-text tags or LCSH subjects -->
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Мои файлы XML:
<?xml version="1.0" encoding="UTF-8"?>
<catalog xsi:noNamespaceSchemaLocation="catalogschema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<catalogRecord>
<titleInfo>
<title>The Selfish Gene</title>
<subtitle></subtitle>
</titleInfo>
<nameInfo primary="false">
<name>Dawkins</name>
<forename>Richard</forename>
<role>author</role>
</nameInfo>
<originInfo>
<place>Oxford, England</place>
<publisher>Oxford University Press</publisher>
<dateIssued>2006</dateIssued>
<edition>3</edition>
</originInfo>
<typeOfResource>book</typeOfResource>
<subject>Biology</subject>
<subject>Evolution</subject>
<subject>Genetics</subject>
<subject>Acedemic Publishing</subject>
</catalogRecord>
</catalog>
<catalog xsi:noNamespaceSchemaLocation="catalogschema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<catalogRecord>
<titleInfo>
<title>The Heart of Saturday Night</title>
<subtitle></subtitle>
</titleInfo>
<nameInfo primary="false">
<name>Waits</name>
<forename>Tom</forename>
<role>performer</role>
</nameInfo>
<nameInfo primary="false">
<name>Howe</name>
<forename>Bones</forename>
<role>director</role>
</nameInfo>
<originInfo>
<place>Los Angelos, CA</place>
<publisher>Asylum Records</publisher>
<dateIssued>1974</dateIssued>
<edition>1</edition>
</originInfo>
<typeOfResource>sound recording</typeOfResource>
<subject>Jack Kerouac</subject>
<subject>Southern California</subject>
<subject>Love</subject>
</catalogRecord>
</catalog>
<?xml version="1.0" encoding="utf-8"?>
<catalog xsi:noNamespaceSchemaLocation="catalogschema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<catalogRecord>
<titleInfo>
<title>Fences</title>
<subtitle></subtitle>
</titleInfo>
<nameInfo primary="false">
<name>August</name>
<forename>Wilson</forename>
<role>Author</role>
</nameInfo>
<nameInfo primary="false">
<name>Denzel Washington</name>
<role>Director</role>
</nameInfo>
<nameInfo primary="false">
<name>Viola Davis</name>
<role>Performer</role>
</nameInfo>
<originInfo>
<place>Hollywood, CA</place>
<publisher>Paramount Pictures</publisher>
<dateIssued>2016</dateIssued>
<edition></edition>
</originInfo>
<typeOfResource>film</typeOfResource>
<subject>African American families</subject>
<subject>Family</subject>
<subject>Pittsburg, PA</subject>
<subject>1950's</subject>
<subject>American history</subject>
</catalogRecord>
</catalog>
Большое спасибо.