Eftersom paketen kan vara godtyckligt långa så kom jag på idén att snickra ihop en DTD som direkt kan förkasta felaktiga paket innan jag börjar snurra igenom dem. Problemet är att jag upptäckt att jag inte är bra på att skriva DTD:er.
Så för att göra en lång fråga kort: Hur uttrycker jag följande:
1. kommandonamn innehåller godtyckligt många delkommando, men minst ett.
2. Ett delkommando måste innehålla indata som måste komma före extraparameter1 och extraparameter2.
3. extraparameter1 och extraparameter2 måste båda förekomma exakt en gång (efter indata som sagt).
Det som ställer till det för mig är indata som är ren text som jag antar jag bör deklarera som PCDATA?
Ja, jo .. kanske. Anledningen till att jag valde en DTD är att jag kan bädda in den i de XML-paket jag får helt enkelt genom att klippa på den innan jag börjar parsa.
Går det att göra nåt liknande med schemas? Jag vill undvika fil-IO och HTTP är uteslutet.
Löser ditt schema mitt problem med ordningsföljden mellan indata och extraparametrarna?
Fast då gnäller MSXML på "Mixed content model cannot contain this character." och av vad jag läst mig till så är det kommatecknen den syftar på. Jag måste istället skriva:
Ja, det var en liten chansning... Jag antog att man inte kunde göra så, men det var kanske värt ett försök? ;)
I schemas kan du inte bestämma ordningen på var texten ska hamna, endast på elementen - texten kan således vara innan, efter eller mitt emellan dina element. Parsen bryr sig inte.
Jag kan tyvärr inte hjälpa dig mer, för jag tror inte att ditt problem går att lösa - utan att förlora kontrollen över ordningsföljden.
Jag kan tyvärr inte hjälpa dig mer, för jag tror inte att ditt problem går att lösa - utan att förlora kontrollen över ordningsföljden.
Nej, jag misstänker att du har rätt (har kollat lite på nätet). Som det är nu så funkar allt redan. Min tanke var bara att jag kunde tjäna några värdefulla millisekunder under min manuella parsning om jag kunde förutsätta att allt låg på rätt plats (och i rätt antal). Men, men .. (det är iaf inte jag som gjort protokollet. Tack ändå.
254 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849