Closed motyc closed 5 years ago
XSD soubory servíruje Tomcat, tj. teď jsou na https://api-test.aiscr.cz/dapro/media/oai_rdf.xsd a https://api-test.aiscr.cz/dapro/media/oai_amcr.xsd - patrně by bylo vhodné udělat ty odkazy dynamicky a správně... Na druhé straně https://api.aiscr.cz/schema/oai_rdf a https://api.aiscr.cz/schema/oai_amcr jsou schema namespacy, které by podle mě měly zůstat konstantní - proto se uvádějí ve xsi:schemaLocation, aby se k nim dalo najít schéma, ať už je jejich URL platné nebo ne... Můžeme na ně udělat redirect, ale dokud není nasazené dapro na produkci, https://api.aiscr.cz/dapro/media/oai_rdf.xsd stejně nebude fungovat...
Myslím, že definice https://api-test.aiscr.cz/dapro/media/oai_amcr.xsd je neúplná. Je třeba to dodělat.
Ano - a jak ji testuju, je nejen neúplná, ale i špatně...
V těchto elementech:
<xsd:element name="odkaz" maxOccurs="1"> <xsd:element name="ext_odkaz" maxOccurs="1" type="oai_amcr:ExternalReferenceType"/>
by nemělo být maxOccurs="1"
(jsou to 1:N vazby).
Není mi také úplně jasné, proč někde je definováno minOccurs="0"
a jinde ne.
V těchto deklaracích maxOccurs výskyt elementů odkaz a ext_odkaz ve skutečnosti neomezuje, protože se nacházejí uvnitř <xsd:choice maxOccurs="unbounded">, tj. dají se vybrat opakovaně - fakticky je jedno je-li v nich maxOccurs (a minOccurs) uvedeno nebo ne. maxOccurs tam zůstalo víceméně náhodou, když jsem to kopíroval...
minOccurs="0" je definováno pro volitelné elementy uvnitř <xsd:all>, kde je nezbytné, pokud je ten element skutečně volitelný - ale musím se přiznat že individuální elementy jsem dosud příliš nezkoumal, a deklaroval volitelné všechny kromě ident_cely. V tomto ohledu má to schéma určitě ještě prostor pro zpřesnění...
Další otázkou je zdali vůbec používat <xsd:choice maxOccurs="unbounded"> (který neumožňuje specifikovat povinné elementy) a <xsd:all> (ve kterém pro změnu nelze specifikovat elementy opakované) - chtěl jsem povolit výskyt všech elementů nezávisle na jejich pořadí, ale XML schema na to zjevně není úplně stavěné, a vede to k množícím se komplikacím - co soudíte o schematu vyžadujícím pevné pořadí elementů, tj. např. pro projekt první element ident_cely, za ním stav atd.?
Aha, to jsem nevěděl. Asi by to tedy bylo dobré vyčistit, ať to nemate.
Tak ono to pořadí elementů ve skutečnosti pevné je, nebo nikoli? Vzhledem k tomu, že vše vychází z toho exportu a měnit pořadí v nich nemá smysl, tak by to mělo být ok...
Ano, export generuje elementy v pevném pořadí. Přišlo mi to spíš jako implementační detail, ale koneckonců to můžeme zafixovat ve schematu - uživatelům těch dat to asi bude celkem jedno...
Souhlas.
Na dílčích místech se objevují odkazy na definice schemat, na kterých však nic není:
https://api.aiscr.cz/schema/oai_rdf https://api.aiscr.cz/dapro/media/oai_rdf.xsd
https://api.aiscr.cz/dapro/media/oai_amcr.xsd https://api.aiscr.cz/schema/oai_amcr
Kdy a co tam bude doplněno?