Импорт XSD для использования foaf в XSL-схеме - PullRequest
1 голос
/ 26 июля 2011

Расширение rdf-словаря, такого как FOAF, возможно с использованием XML-схемы, но как я могу использовать классы из такого словаря внутри определения? По сути, я хочу добавить новые элементы в foaf: person и хочу убедиться, что наличие этих элементов означает, что этот объект - foaf: Person и ничего больше.

<?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/NewXMLSchema" xmlns:foaf="http://xmlns.com/foaf/0.1/" elementFormDefault="qualified">

<xs:import foaf:namespace="http://xmlns.com/foaf/0.1/" foaf:schemaLocation="http://xmlns.com/foaf/spec/index.rdf"/>

<xs:complexType ref="foaf:Person">
    <xs:sequence>
        <xs:element name="owns">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="device">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="HereBeSomething"></xs:element>
                            </xs:sequence>
                        </xs:complexType>   
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="datapoints">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="point" type="xs:string"></xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>

Предполагается, что Сложный тип будет foaf: Person, но это расположение приводит к ошибке:

"В этой строке найдено несколько аннотаций: - s4s-att-must-появляться: атрибут 'имя' должен появляться в элементе 'ComplexType. - s4s-att-not-позволено: атрибут 'ref' не может появиться в элементе 'ComplexType'. "

Как я могу использовать типы из других RDF-онтологий в определении моей новой схемы?

1 Ответ

2 голосов
/ 27 июля 2011

Я бы не пошел туда. Схема XML не очень хороший инструмент для работы с данными RDF. Многие люди смотрят на сериализацию XML RDF и думают: «О, это похоже на XML с некоторыми дополнительными rdf: this и rdf: добавленные атрибуты». Но это обманчиво.

RDF - это набор троек субъект-предикат-объект. Существует несколько синтаксисов для записи этих троек в файлы. RDF / XML является одним из них; Черепаха, N-Трипл и RDFa и др.

Проблема с RDF / XML заключается в том, что существует много разных способов записать один и тот же набор троек в файл RDF / XML. Например, следующие два фрагмента в точности эквивалентны:

<foaf:Person rdf:about="#cygri">
    <foaf:nick>cygri</foaf:nick>
</foaf:Person>

<rdf:Description rdf:ID="cygri">
    <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person">
    <foaf:nick>cygri</foaf:nick>
</foaf:Person>

В итоге: я рекомендую , а не использовать инструменты XML для обработки данных RDF. Используйте инструменты RDF. Чтобы расширить схему RDF, такую ​​как FOAF, используйте схему RDF.

...