Tobias Pape uploaded a new version of XML-Parser to project The Trunk:
http://source.squeak.org/trunk/XML-Parser-topa.38.mcz ==================== Summary ==================== Name: XML-Parser-topa.38 Author: topa Time: 9 June 2016, 2:18:47.587644 pm UUID: 04dceb47-db2b-4617-86ac-737264db4bbd Ancestors: XML-Parser-bf.37 Fix SAX namespace handling Add FileService to Explore XML files (includes external Drag'n'Drop) =============== Diff against XML-Parser-bf.37 =============== Item was changed: ----- Method: SAXDriver>>handleStartTag:attributes:namespaces: (in category 'handling tokens') ----- handleStartTag: elementName attributes: attributeList namespaces: namespaces | localName namespace namespaceURI | (attributeList includesKey: 'xml:lang') ifTrue: [languageEnvironment := LanguageEnvironment localeID: (LocaleID isoString: (attributeList at: 'xml:lang'))]. self usesNamespaces ifTrue: [ self scope enterScope. "declare any namespaces" namespaces keysAndValuesDo: [:ns :uri | self scope declareNamespace: ns uri: uri]. self splitName: elementName into: [:ns :ln | namespace := ns. localName := ln]. + namespaceURI := self scope + namespaceURIOf: namespace + ifAbsent: [self parseError: 'Start tag ' , elementName , ' refers to undefined namespace ' , namespace asString]. - "ensure our namespace is defined" - namespace - ifNil: [namespace := self scope defaultNamespace] - ifNotNil: [ - namespaceURI := self scope namespaceURIOf: namespace. - namespaceURI - ifNil: [self parseError: 'Start tag ' , elementName , ' refers to undefined namespace ' , namespace asString]]. self validatesAttributes ifTrue: [self scope validateAttributes: attributeList]. "call the handler" self saxHandler checkEOD; startElement: localName namespaceURI: namespaceURI namespace: namespace attributeList: attributeList] ifFalse: [ "call the handler" self saxHandler checkEOD; startElement: elementName namespaceURI: nil namespace: nil attributeList: attributeList]! Item was added: + ----- Method: XMLDOMParser class>>fileReaderServicesForFile:suffix: (in category 'file reader services') ----- + fileReaderServicesForFile: fullName suffix: suffix + + " some known suffixes " + ^ ((#('xml' 'xsl' 'xhtml' 'sif' 'rss' 'atom' '*') includes: suffix) + or: [self looksLikeXML: fullName]) + ifFalse: [#()] + ifTrue: [{self serviceExplore}]! Item was added: + ----- Method: XMLDOMParser class>>initialize (in category 'initialize-release') ----- + initialize + "register the receiver in the global registries" + self environment + at: #FileList + ifPresent: [:cl | cl registerFileReader: self]! Item was added: + ----- Method: XMLDOMParser class>>looksLikeXML: (in category 'file reader services') ----- + looksLikeXML: fullName + + [ | sample | + FileStream readOnlyFileNamed: fullName do: + [:stream | + stream isBinary ifTrue: [^ false]. + sample := (stream next: 20) withBlanksTrimmed]. + ^ sample first = $< + and: [ (#( $!! $? $: $_ ) includes: sample second) + or: [sample second isLetter]] + ] on: Error do: [^ false "backstop"]! Item was added: + ----- Method: XMLDOMParser class>>serviceExplore (in category 'file reader services') ----- + serviceExplore + + ^ SimpleServiceEntry + provider: [:fullName | + (FileStream readOnlyFileNamed: fullName do: + [:file | self parseDocumentFrom: file useNamespaces: true]) explore] + label: 'explore XML' + selector: #value: + description: 'read and partse the file and explore its XML structure' + buttonLabel: 'explore'! Item was added: + ----- Method: XMLDOMParser class>>unload (in category 'initialize-release') ----- + unload + "Unload the receiver from global registries" + self environment + at: #FileList + ifPresent: [:cl | cl unregisterFileReader: self]! |
Minor error:
instead of + description: 'read and partse the file and explore its XML structure' parse On Thu, 9 Jun 2016 12:18:49.869 0000, [hidden email] <[hidden email]> wrote: > Tobias Pape uploaded a new version of XML-Parser to project The Trunk: > http://source.squeak.org/trunk/XML-Parser-topa.38.mcz > > ==================== Summary ==================== > > Name: XML-Parser-topa.38 > Author: topa > Time: 9 June 2016, 2:18:47.587644 pm > UUID: 04dceb47-db2b-4617-86ac-737264db4bbd > Ancestors: XML-Parser-bf.37 > > Fix SAX namespace handling > Add FileService to Explore XML files (includes external Drag'n'Drop) > > =============== Diff against XML-Parser-bf.37 =============== > > Item was changed: > ----- Method: SAXDriver>>handleStartTag:attributes:namespaces: (in > category 'handling tokens') ----- > handleStartTag: elementName attributes: attributeList namespaces: > namespaces > > | localName namespace namespaceURI | > > (attributeList includesKey: 'xml:lang') > ifTrue: [languageEnvironment := LanguageEnvironment localeID: (LocaleID > isoString: (attributeList at: 'xml:lang'))]. > self usesNamespaces > ifTrue: [ > self scope enterScope. > "declare any namespaces" > namespaces keysAndValuesDo: [:ns :uri | > self scope declareNamespace: ns uri: uri]. > > self splitName: elementName into: [:ns :ln | > namespace := ns. > localName := ln]. > > + namespaceURI := self scope > + namespaceURIOf: namespace > + ifAbsent: [self parseError: 'Start tag ' , elementName , ' refers to > undefined namespace ' , namespace asString]. > - "ensure our namespace is defined" > - namespace > - ifNil: [namespace := self scope defaultNamespace] > - ifNotNil: [ > - namespaceURI := self scope namespaceURIOf: namespace. > - namespaceURI > - ifNil: [self parseError: 'Start tag ' , elementName , ' refers to > undefined namespace ' , namespace asString]]. > > self validatesAttributes > ifTrue: [self scope validateAttributes: attributeList]. > "call the handler" > self saxHandler > checkEOD; > startElement: localName namespaceURI: namespaceURI namespace: > namespace attributeList: attributeList] > ifFalse: [ > "call the handler" > self saxHandler > checkEOD; > startElement: elementName namespaceURI: nil namespace: nil > attributeList: attributeList]! > > Item was added: > + ----- Method: XMLDOMParser class>>fileReaderServicesForFile:suffix: (in > category 'file reader services') ----- > + fileReaderServicesForFile: fullName suffix: suffix > + > + " some known suffixes " > + ^ ((#('xml' 'xsl' 'xhtml' 'sif' 'rss' 'atom' '*') includes: suffix) > + or: [self looksLikeXML: fullName]) > + ifFalse: [#()] > + ifTrue: [{self serviceExplore}]! > > Item was added: > + ----- Method: XMLDOMParser class>>initialize (in category > 'initialize-release') ----- > + initialize > + "register the receiver in the global registries" > + self environment > + at: #FileList > + ifPresent: [:cl | cl registerFileReader: self]! > > Item was added: > + ----- Method: XMLDOMParser class>>looksLikeXML: (in category 'file reader > services') ----- > + looksLikeXML: fullName > + > + [ | sample | > + FileStream readOnlyFileNamed: fullName do: > + [:stream | > + stream isBinary ifTrue: [^ false]. > + sample := (stream next: 20) withBlanksTrimmed]. > + ^ sample first = $< > + and: [ (#( $!! $? $: $_ ) includes: sample second) > + or: [sample second isLetter]] > + ] on: Error do: [^ false "backstop"]! > > Item was added: > + ----- Method: XMLDOMParser class>>serviceExplore (in category 'file reader > services') ----- > + serviceExplore > + > + ^ SimpleServiceEntry > + provider: [:fullName | > + (FileStream readOnlyFileNamed: fullName do: > + [:file | self parseDocumentFrom: file useNamespaces: true]) explore] > + label: 'explore XML' > + selector: #value: > + description: 'read and partse the file and explore its XML structure' > + buttonLabel: 'explore'! > > Item was added: > + ----- Method: XMLDOMParser class>>unload (in category > 'initialize-release') ----- > + unload > + "Unload the receiver from global registries" > + self environment > + at: #FileList > + ifPresent: [:cl | cl unregisterFileReader: self]! > > > |
On 09.06.2016, at 15:07, H. Hirzel <[hidden email]> wrote: > Minor error: > > instead of > > + description: 'read and partse the file and explore its > XML structure' > parse Thanks! I blame it on my plenking-hands :D Best -Tobias > > On Thu, 9 Jun 2016 12:18:49.869 0000, [hidden email] > <[hidden email]> wrote: >> Tobias Pape uploaded a new version of XML-Parser to project The Trunk: >> http://source.squeak.org/trunk/XML-Parser-topa.38.mcz >> >> ==================== Summary ==================== >> >> Name: XML-Parser-topa.38 >> Author: topa >> Time: 9 June 2016, 2:18:47.587644 pm >> UUID: 04dceb47-db2b-4617-86ac-737264db4bbd >> Ancestors: XML-Parser-bf.37 >> >> Fix SAX namespace handling >> Add FileService to Explore XML files (includes external Drag'n'Drop) >> >> =============== Diff against XML-Parser-bf.37 =============== >> >> Item was changed: >> ----- Method: SAXDriver>>handleStartTag:attributes:namespaces: (in >> category 'handling tokens') ----- >> handleStartTag: elementName attributes: attributeList namespaces: >> namespaces >> >> | localName namespace namespaceURI | >> >> (attributeList includesKey: 'xml:lang') >> ifTrue: [languageEnvironment := LanguageEnvironment localeID: (LocaleID >> isoString: (attributeList at: 'xml:lang'))]. >> self usesNamespaces >> ifTrue: [ >> self scope enterScope. >> "declare any namespaces" >> namespaces keysAndValuesDo: [:ns :uri | >> self scope declareNamespace: ns uri: uri]. >> >> self splitName: elementName into: [:ns :ln | >> namespace := ns. >> localName := ln]. >> >> + namespaceURI := self scope >> + namespaceURIOf: namespace >> + ifAbsent: [self parseError: 'Start tag ' , elementName , ' refers to >> undefined namespace ' , namespace asString]. >> - "ensure our namespace is defined" >> - namespace >> - ifNil: [namespace := self scope defaultNamespace] >> - ifNotNil: [ >> - namespaceURI := self scope namespaceURIOf: namespace. >> - namespaceURI >> - ifNil: [self parseError: 'Start tag ' , elementName , ' refers to >> undefined namespace ' , namespace asString]]. >> >> self validatesAttributes >> ifTrue: [self scope validateAttributes: attributeList]. >> "call the handler" >> self saxHandler >> checkEOD; >> startElement: localName namespaceURI: namespaceURI namespace: >> namespace attributeList: attributeList] >> ifFalse: [ >> "call the handler" >> self saxHandler >> checkEOD; >> startElement: elementName namespaceURI: nil namespace: nil >> attributeList: attributeList]! >> >> Item was added: >> + ----- Method: XMLDOMParser class>>fileReaderServicesForFile:suffix: (in >> category 'file reader services') ----- >> + fileReaderServicesForFile: fullName suffix: suffix >> + >> + " some known suffixes " >> + ^ ((#('xml' 'xsl' 'xhtml' 'sif' 'rss' 'atom' '*') includes: suffix) >> + or: [self looksLikeXML: fullName]) >> + ifFalse: [#()] >> + ifTrue: [{self serviceExplore}]! >> >> Item was added: >> + ----- Method: XMLDOMParser class>>initialize (in category >> 'initialize-release') ----- >> + initialize >> + "register the receiver in the global registries" >> + self environment >> + at: #FileList >> + ifPresent: [:cl | cl registerFileReader: self]! >> >> Item was added: >> + ----- Method: XMLDOMParser class>>looksLikeXML: (in category 'file reader >> services') ----- >> + looksLikeXML: fullName >> + >> + [ | sample | >> + FileStream readOnlyFileNamed: fullName do: >> + [:stream | >> + stream isBinary ifTrue: [^ false]. >> + sample := (stream next: 20) withBlanksTrimmed]. >> + ^ sample first = $< >> + and: [ (#( $!! $? $: $_ ) includes: sample second) >> + or: [sample second isLetter]] >> + ] on: Error do: [^ false "backstop"]! >> >> Item was added: >> + ----- Method: XMLDOMParser class>>serviceExplore (in category 'file reader >> services') ----- >> + serviceExplore >> + >> + ^ SimpleServiceEntry >> + provider: [:fullName | >> + (FileStream readOnlyFileNamed: fullName do: >> + [:file | self parseDocumentFrom: file useNamespaces: true]) explore] >> + label: 'explore XML' >> + selector: #value: >> + description: 'read and partse the file and explore its XML structure' >> + buttonLabel: 'explore'! >> >> Item was added: >> + ----- Method: XMLDOMParser class>>unload (in category >> 'initialize-release') ----- >> + unload >> + "Unload the receiver from global registries" >> + self environment >> + at: #FileList >> + ifPresent: [:cl | cl unregisterFileReader: self]! |
Free forum by Nabble | Edit this page |