Имейте в виду, что uri схемы в schemaLocation разрешается в базе данных Schemas, а не в Интернете.
Честно говоря, я думаю, что в MarkLogic проще всего вообще не использовать атрибут xsi: schemaLocation, а скорее явно импортировать схему в xqy (с помощью оператора import schema
), чтобы убедиться, что он находит ее правильно.
Кстати, Джошуа прав насчет Схематрона. Оператор validate
не выполняет проверку Schematron. Однако MarkLogic обеспечивает поддержку схематронов, которую вы можете применить вручную:
https://docs.marklogic.com/schematron
Схема будет примерно такой. Вы начинаете с загрузки схемы и схемы в базу данных схем. Затем вам нужно скомпилировать файл схемы, используя что-то вроде:
xquery version "1.0-ml";
import module namespace schematron = "http://marklogic.com/xdmp/schematron"
at "/MarkLogic/schematron/schematron.xqy";
schematron:put("/schematron.sch")
После этого вы используете схему импорта и проверяете, чтобы выполнить проверку как схемы, так и схемы. Что-то вроде:
import schema namespace mods = "http://www.loc.gov/mods/v3" at "/mods-3-6.xsd";
import module namespace schematron = "http://marklogic.com/xdmp/schematron"
at "/MarkLogic/schematron/schematron.xqy";
let $xml := <mods version="3.3" xmlns="http://www.loc.gov/mods/v3">
<titleInfo>
<title>FranUlmer.com -- Home Page</title>
</titleInfo>
<titleInfo type="alternative">
<title>Fran Ulmer, Democratic candidate for Governor, Alaska, 2002</title>
</titleInfo>
<name type="personal">
<namePart>Ulmer, Fran</namePart>
</name>
<genre>Website</genre>
<originInfo>
<dateCaptured point="start" encoding="iso8601">20020702 </dateCaptured>
<dateCaptured point="end" encoding="iso8601"> 20021203</dateCaptured>
</originInfo>
<language>
<languageTerm authority="iso639-2b">eng</languageTerm>
</language>
<physicalDescription>
<internetMediaType>text/html</internetMediaType>
<internetMediaType>image/jpg</internetMediaType>
</physicalDescription>
<abstract>Website promoting the candidacy of Fran Ulmer, Democratic candidate for Governor, Alaska, 2002. Includes candidate biography, issue position statements, campaign contact information, privacy policy and campaign news press releases. Site features enable visitors to sign up for campaign email list, volunteer, make campaign contributions and follow links to other internet locations. </abstract>
<subject>
<topic>Elections</topic>
<geographic>Alaska</geographic>
</subject>
<subject>
<topic>Governors</topic>
<geographic>Alaska</geographic>
<topic>Election</topic>
</subject>
<subject>
<topic>Democratic Party (AK)</topic>
</subject>
<relatedItem type="host">
<titleInfo>
<title>Election 2002 Web Archive</title>
</titleInfo>
<location>
<url>http://www.loc.gov/minerva/collect/elec2002/</url>
</location>
</relatedItem>
<location>
<url displayLabel="Active site (if available)">http://www.franulmer.com/</url>
</location>
<location>
<url displayLabel="Archived site">http://wayback-cgi1.alexa.com/e2002/*/http://www.franulmer.com/</url>
</location>
</mods>
return
schematron:validate(
validate strict { $xml},
schematron:get("/schematron.sch")
)
HTH!
08.11.2019