[squeak-dev] The Trunk: XML-Parser-topa.38.mcz
H. Hirzel
hannes.hirzel at gmail.com
Thu Jun 9 13:07:29 UTC 2016
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, commits at source.squeak.org
<commits at source.squeak.org> 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]!
>
>
>
More information about the Squeak-dev
mailing list
|