# UPDATE AS NEEDED (mostly for character names) #TWO MAIN ELEMENTS inside root element: scriptInfo (beginning, info, etc.) and script (actual screenplay material) start = element root {scriptInfo, script} #scenes wrap whole scenes, starting from location line to next one # narr wraps narrator text # desc wraps parenthical descriptors # credits and omit only if applicable script = element script {mixed{scene*, narr*, d*, desc*, credits*, omit*}} credits = element credits {text} scriptInfo = element scriptInfo {mixed{(date | dir | quote? | title)*}} title = element title {text} quote = element quote {text} # dir wraps director dir = element dir {text} date = element date {text} # omit wraps the omitted text where labeled in screenplay omit = element omit {"OMITTED"} scene = element scene {(narr | d | loc | shot | char | desc | text)* } num = attribute num {xsd:int} d = element d {(desc | narr | char | shot | vo | os | who | wall | text)*} vo = attribute vo {"true"} os = attribute os {"true"} # SPECIFIC TO FERRIS BUELLER, 4th-wall breaking lines of dialoge (talking to camera, etc.) # are to be specially marked (in addition to normal dialoge marks; # maybe can just be an attribute for those particular lines instead) wall = attribute wall {"true"} # every character mention in dialog and narration gets wrapped char = element char {text, who} who = attribute who { # Breakfast Club characters, add characters as needed # (stick w/ major characters, others misc/side/etc.; # combinations of characters get their own, combined character designation, ex. "andrew, brian") "brian" | "vernon" | "claire" | "bender" | "andrew" | "carl" | "allison" | "andrew, brian" | # characters that rarely appear or are unnamed "misc" | # characters that were cut "cut" | # Ferris Bueller's Day Off characters "ferris" | "cameron" | "sloane" | "rooney" | "katie" | "jeanie" | "tom" | "ferris, sloane" | # Sixteen Candles characters "jim" | "brenda" | "mike" | "ginny" | "sara" | "sam" | "randy" | "jake" | "rock" | "caroline" | "driver" | "grace" | "rudy"| "geek" | "howard" | "dorothy" | "fred" | "helen" | "dong" | "patty" | "cliff" | "bryce" | "dj" | "lumberjack" | "tracy" | "robin" | "both" | "jimmy" | "ted" | "freshman" | "biker" | "bruno" | "irene" | "girl" | "guy" | "biker" | "megan" | "housekeeper" | "organist" | "man" | "reverend" | "driver" | "photographer" | "kid" | "groom" } loc = element loc {mixed{ext*, int*, char*}} int = attribute int {"true"} ext = attribute ext {"true"} # not much camera description in Hughes screenplays, but mark where applicable desc = element desc {(char | text)*} shot = element shot {(tracking | panning | slow | close | overhead | pov | dissolve | char | loc | text)*} tracking = attribute tracking {"true"} panning = attribute panning {"true"} close = attribute close {"true"} pov = attribute pov {"true"} slow = attribute slow{"true"} overhead = attribute overhead{"true"} dissolve = attribute dissolve{"true"} narr = element narr {(char | shot | loc | desc | text)*}