[Bitrepository-devel] FileIDs i protokollen

Michael Rasmussen mira at kb.dk
Mon Dec 19 13:30:08 CET 2011


Her var det jeg havde sjusset mig frem til: Kønt er det ikke, men følgende ser ud til at virke for at få et tomt element (der kan genbruges):

	org.w3c.dom.Element emptyElement = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument().createElement("Empty")

Brug:

	request.getFileIDs().setAllFileIDs(emptyElement)

- Michael

-----Oprindelig meddelelse-----
Fra: bitrepository-devel-bounces at ml.sbforge.org [mailto:bitrepository-devel-bounces at ml.sbforge.org] På vegne af Kim Teglgaard Christensen
Sendt: 19. december 2011 13:04
Til: bitrepository-devel at ml.sbforge.org
Emne: Re: [Bitrepository-devel] FileIDs i protokollen

Hej 

Vi har haft lidt snak og forsøg her ovre på SB (Kåre, Mikis og jeg
selv), om de 4 nævnte løsninger. 
Løsningen forslået af Jun på sidste videomøde med at dele de pågældende
beskeder op i to, er vi ikke glade for. Vi har en hel del steder rundt
omkring hvor en enkelt attribut har flere forskellige muligheder, så
hvis FileIDs skulle resultere i to beskeder pr brug, vil det også
medføre en ligende valg pr attribut og skulle resultere i flere
beskeder. 

Vi har smidt lidt tid efter at prøve at ændre protokollen til at
indkludere andet element end FileIDs som bruger nedarvning. Men det er
ikke lykkedes at finde noget som endte med at se pænt ud. Til dels blev
xsd'en sværre at forstå og finde rundt i og tildels for os der bruger
JAXB kom der nogle grimme ting ud i den anden ende. 

At bibeholde choice, men med AllFileIDs som en boolean som er fixet til
true, vil ikke bidrage med ret meget, ud over at definere hvilken type
objekt der er tale om. Det er muligt at lave invalid xml med de JAXB
genererede klasser, både ved at sætte boolean værdien til false, men
også ved at sætte begge elementer. Det vil naturligvis fanges når man
validere sin xml. 

Vi er derfor endt med at være mest glade for løsning 1, at beholde
tingene som de er. Bekymringen om hvad AllFileIDs indeholder mener jeg
er skudt forbi målet, da det ikke er _hvad_ den indeholder, men _om_ den
er sat. Michael nævnte desuden at han havde fundet en løsning på Java
siden til hvordan man kunne sætte det tomme AllFileIDs element uden at
den genererede XML blev grim. 
I det hele taget har Kåre mere eller mindre hele tiden sagt noget ala:
"Vi prøver at løse et ikke eksisterende problem..."

Så det korte af det lange, det virker til at være bedst at holde os til
FileIDs med choice mellem FileID og AllFileIDs.

Mvh Kim



On Thu, 2011-12-15 at 09:25 +0100, Jonas Krasilnikoff Malling wrote:
> Hej Alle
> 
> I .Net er det muligt at fremtvinge AlFileIDs ved at oprette et tomt objekt og smide det på. Det er grimt, men virker og kan valideres. Jeg mener, at Jun var inde på det i går, holdningen her at at dele skidtet i to beskeder. Det er en nydelig løsning, der løser problemerne.
> 
> Mvh - Jonas (.NetArkivaren)
> 
> -----Oprindelig meddelelse-----
> Fra: bitrepository-devel-bounces at ml.sbforge.org [mailto:bitrepository-devel-bounces at ml.sbforge.org] På vegne af Kim Teglgaard Christensen
> Sendt: 15. december 2011 08:18
> Til: bitrepository-devel at ml.sbforge.org
> Emne: [Bitrepository-devel] FileIDs i protokollen
> 
> Hej folkens
> 
> Vi var blevet enige om at jeg skulle kigge på en bedre løsning (dvs snakke med Asgar) af hvordan vi definere FileIDs elementet i protokollen. 
> 
> Efter at have haft en god snak med Asgar, er der for mig at se 3
> muligheder:
> 1) Bliv hvor vi er.
> 2) Sætte AllFileIDs elementet til at være en fixed boolean.
> 3) Introducere nedarvning, så FileIDs elementet kommer til at indeholde én af flere klasser. 
> 
> Kåre var også forbi med en hurtig bemærkning om at han stadig ikke var overbevist om at vi reelt løser et problem. Det vil jeg lade ham selv uddybe, selv om jeg er tilbøjelig til at give ham ret. 
> 
> Løsning 1, at beholde det vi har, vil for os være velkendt. Vi har på de genererede klasser mulighed for at sætte begge elementer (FileID OG AllFileIDs), men det vil ikke validere.
> 
> Løsning 2, vil tvinge os til at sætte en boolean som AllFileIDs, men introducere endnu en mulighed for fejl. Hvis den fixes til true, giver JAXB generede klasser muilghed for at sætte den til false, som også vil forhindre i at validere. 
> 
> Løsning 3, at introducere nedarvning vil give os ét element i FileIDs elementet. Vi vil ikke kunne sætte to og derved få invalid xml ud af det, og skal der tilføjes en form for filter/regulært udtryk mulighed vil det være at tilføje en ekstra klasse. 
> 
> Så nu er der lagt op til diskussion. Har vi reelt et problem der skal løses på protokol niveau?
> Hvis vi har, hvilken af ovenstående muligheder skal så løse det?
> (alternative forslag er velkomne)
> Hvordan vil ovenstående gå med .net koden?
> 
> Mvh Kim
> 
> _______________________________________________
> Bitrepository-devel mailing list
> Bitrepository-devel at ml.sbforge.org
> http://ml.sbforge.org/mailman/listinfo/bitrepository-devel
> 
> _______________________________________________
> Bitrepository-devel mailing list
> Bitrepository-devel at ml.sbforge.org
> http://ml.sbforge.org/mailman/listinfo/bitrepository-devel


_______________________________________________
Bitrepository-devel mailing list
Bitrepository-devel at ml.sbforge.org
http://ml.sbforge.org/mailman/listinfo/bitrepository-devel



More information about the Bitrepository-devel mailing list