[squeak-dev] The Trunk: XML-Parser-topa.38.mcz

Tobias Pape Das.Linux at gmx.de
Thu Jun 9 13:15:07 UTC 2016


On 09.06.2016, at 15:07, H. Hirzel <hannes.hirzel at gmail.com> 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, 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