Имейте в виду, что URI схемы в schemaLocation разрешается в базе данных Schemas, а не в Интернете.
Если честно, я думаю, что в MarkLogic проще всего не использовать xsi:Атрибут schemaLocation, а точнее импортируйте схему явно в xqy (используя оператор import schema
), чтобы убедиться, что она находит его правильно.
Кстати, Джошуа прав насчет Schematron. Оператор validate
не выполняет проверку Schematron. Тем не менее, MarkLogic предоставляет поддержку схематрон, которую вы можете применить вручную:
https://docs.marklogic.com/schematron
Шаблон будет примерно следующим. Вы начинаете с загрузки 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!