'XML'에 해당되는 글 4건

  1. 2017.04.05 [XML] AutomationML
  2. 2009.03.05 [XML] XML ??? ... (3)
  3. 2009.03.05 [XML] XML ??? ... (2)
  4. 2009.03.05 [XML] XML ??? ... (1)
2017.04.05 13:56

 

AutomationML 에 대한 내용을 파악하기 위한 사이트입니다.

 

AutomationML

 

https://www.automationml.org/o.red.c/dateien.html?cat=2

 

PLCOpen

 

행복한 고수되십시요.

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

 













저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'XML' 카테고리의 다른 글

[XML] AutomationML  (0) 2017.04.05
[XML] XML ??? ... (3)  (0) 2009.03.05
[XML] XML ??? ... (2)  (0) 2009.03.05
[XML] XML ??? ... (1)  (0) 2009.03.05
Posted by woojja
2009.03.05 22:33
아~~ 드뎌 3번째 입니다. 일단의 마의 3 번째를 넘었는데... 내용이 너무 허접하여 계속 이끌어갈수 있을지... ^^;;;
하이간 한번 끝까지 해볼랍니다. ^^
 
오늘은 XML Parsing에 대해 알아보도록 할까요?
Parsing이라 함은 간단히 Reading이라고 생각하시면 될 듯 합니다.
하지만 단순한 죽죽 읽어 내려가는 작업이 아닌 문서내에서 어떤 특정 데이터값을 찾는 다거나 특정 값과 관련된 일정 범위의 값들을 필터링하는 작업을 할수도 있고 XML 문서의 원하는 node를 찾아 내고 특정 element의 attribute 의 값을 찾아내는 일련을 작업을 말합니다.
그 밖에 Node type으로 리스트를 만들 수 있습니다.
Node를 Sort 할 수 있습니다.
XML Source 내에 있는 chile element들의 리스트를 만들 수 있습니다.
관련된 Node를 찾을 수 있습니다.
 
Parsing이 어떤 작업인지는 어련풋이 감을 잡으셨으리라 생각합니다.
 
그러면 XML Parsing Model에 대해서 알아볼까요?
크게 두가지 모델이 있다고 합니다.
그 것은 Push model과 Pull model 입니다.
Push model은 말 그대로 XML parsing 을 담당하는 객체가 데이터를 application에게 밀어 넣어주는 개념이라고 보시면 되고 이 모델은 SAX에서 사용하고 있습니다.
Pull model은 .NET Framework XML Reader가 채택하고 있는 모델로 application이Parsing 객체에 접근하여 데이터를 당겨오는 방식이라고 생각하시면 됩니다.
 
Push model은 xml data를 요청하는 application에게 filtering없이 처음부터 끝까지 주~~욱 데이터를 밀어 넣어 줍니다. 그래서 만약에 중간에 xml 파일이 well form이 아니거나 하면 걍 확 작업을 멈춰버리죠. 그래서 프로그래밍 시에 언제, 어떤 에러가 발생할지 모르니까 다양한 상황에 따른 error 처리를 해주어야 할 것입니다.
.NET에서는 SAX를 지원하지 않습니다.
하지만 .NET Based program에서 MSXML Parser 를 사용하는 방법으로 SAX방식을 구현할 수 는 있겠죠…
 
pull model같은 경우는 전에 말한 바와 같이 application이 parser에게 특정 node를 저정해주면 parser 는 xml source에서 그 node의 데이터만 가져오고 application은 그 가져온 데이터를 당겨 (pull) 옵니다.
.NET Framework 의 XmlReader class는 한번에 하나의 node만 읽습니다. 그리고 읽은 후에는 application에 읽었다는 notification은 날릴 뿐입니다.(야~~ 나 읽었어..라고요..^^)
만약에 xmlreader가 error를 만나면 야도 SAX와 같이 error를 발생시킵니다.
근데 SAX랑 약간 다른 점이 있다면 error를 만나도 하던 작업을 계속 진행합니다.
그게 다른 점이죠…
 
 
XmlReader에는 두가지 장점이 있는데 그 중하나는 coding이 쉽다는 점입니다.
우리가 datareader 객체의 read 함수를 사용해서 Looping 을 돌려 데이터를 가죠오듯이 쉽게 데이터를 가져올 수 있습니다.
Push model에서는 state 를 handle하는 routine리라는 걸 사용한다고 하네요…
글구 그런 routine을 사용하는 것보다 훨씬 쉽다고 합니다.(SAX를 사용해 보질 않아서.. ^^;)
글구 두번째는 XmlReader는 SAX보다는 적은 memory를 사용하기 때문에 수행면에서 더낫다는 것입니다.
그리고 전에도 이야기 했듯이. SAX는 내가 원하는 데이터를 찾기 위해서는 첫줄부터 마지막줄까지 일일이 한줄한줄 찾아 내려갑니다.
내가 원하는 데이터를 만날때까지.
그러나 Pulll model을 사용하는 XmlReader의 경우는 원하지 않는 element는 걍 넘어가 버리죠..
그러니 SAX보다는 빠르겠죠…
 
요약하면 이렇습니다.
상태관리(state management)면에서 push model의 경우는 context handler를 요구하지만
pull model 의 client는 상태관리가 단순하다고 하네요..(이 부분은 공부가 더 필요할 듯…ㅡㅡ;)
multiple input streams: pull model은 client가 파서에게 일을 준다고 해도 SAX보다는 덜 무리가 가겠죠..
 push model의 경우는 일을 받으면 데이터를 주~~욱 끝까지 읽으며 데이터를 가져와야지..
그리고 그 가져온걸 요청한 녀석에게 또 다 뿌려줘야지.. 할일이 억쓰로 많을 것입니다.
 
데이터를 가져오는 효율성을 보면 push model은 데이터를 두번 쓴다고 합니다.
Parser는 Xml 문서로부터 읽은 string 객체를 자신의 buffer에 한번 쓰고 다시 그걸 client의 buffer에 밀어 넣어 써주어야 한다고 하네요..
그래서 두번 쓴다고 합니다.
Pull model은 자신의 buffer에만 쓰면 되죠.. 그리고 client에게 notification만 날린다고 했죠. (야~ 다 읽었어! 라고.. ^^)
Push model은 원하는 데이터를 찾을 때 한줄 한줄 다 읽어 내려간다고 했죠. 각 item을 비롯해서 각 element 의 name, attribute 의 이름, 값, 공백까지..
다 읽어 내려간다고 합니다. 그러나 pull model 의 경우는 원하는 item 이 아닌 경우는 걍 skip 하고 뛰어 넘어 갈 수 있습니다. 그러니 push model 경우보다는 빠를 수 있다는 야그죠.
SAX가 Pull model 보다 나은 점에 대해서 예전에 들었었는데 기억이 가물가물해서 모르겠네요..
아시는 분께서는 알려주세요… ^^
그럼 다음 시간에는 XmlReader를 이용한 Parsing을 시작으로 Xml Parsing에 대해서 한번 주~욱 알아보죠…
 
긴 글 읽어 주셔서 감사합니다.
 
한주가 다시 시작됐습니다.
 
부디 행복한 한주 되시고
고수되십시요...
 
woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
작심삼일은 넘었으나.. 다시 작심삼일이 되지 않도록 기도해주세요... ^^;(작심삼일 되기전에 다시 마음을 먹었거든요..ㅋㅋㅋ)













저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'XML' 카테고리의 다른 글

[XML] AutomationML  (0) 2017.04.05
[XML] XML ??? ... (3)  (0) 2009.03.05
[XML] XML ??? ... (2)  (0) 2009.03.05
[XML] XML ??? ... (1)  (0) 2009.03.05
Posted by woojja
TAG xml
2009.03.05 22:32

저번시간에 이어 오늘도 좀 나아가 볼랍니다.
밤에 집에 와서 이렇게 멀 잡고 한다는게 힘드네요...
그래도 작심삼일이 되지 않게 하기 위해서... ^^;
 
이번에는 .NET Framework이 제공하는 XML 관련 class들과 W3C 규격의 XML 을 비교해 볼까요?
W3C XML Standard
NET Framework
namespace
.NET Framework
Class
XML 1.0 and Namespace in XML
System.Xml
 
XPath
System.Xml
System.Xml.XPath
XPath
XSLT
System.Xml.Xsl
XmlTransform
DOM Level1/Level2 Core
System.Xml
XmlDocument
XML Schemas
System.Xml
System.Xml.Schemas
XmlSchema
 
XML Schema Object Model(SOM)
System.Xml.Schemas
XmlSchema
 
그럼 .NET Framework의 XML Class들을 살펴보겠습니다.
Abstract base class
Use
Derived classes
XmlReader
Streaming model과 함께 사용하여 Xml 문서를 읽을 때 forword-only, read-only cursor로 접근하며 합니다. 그리고 schema, DTD, XDR, XSD에 대한 유효성을 검사할 때 사용합니다.
XmlTextReader
XmlNodeReader
XmlValidatingReader
XmlWriter
XML 문서를 만들 때 사용합니다.
XmlTextWriter
XmlNavigator
XML 문서를 검색할 때 사용합니다.
XmlPathNavigator
XmlResolver
URI 로 명명된 외부 XML Resource를 바꾸는데(resolve) 사용합니다.
XmlUrlResolver
 
이런 것들이 있다고 합니다.
그리고 위의 class들은 차츰 진행해 나가면서 언급되고 코딩을 통해서 쓰임새를 알아보도록 하겠습니다.(ㅡㅡ; 코드 만드는게 잴루다 문제일 것 같습니다.)
 
여러분도 잘 아시다시피 MS에서는 XML을 작업하기 위한 두가지 방법을 제공하고 있습니다.
지금 다루고 있는 .NET Framework의 XML class 이고요 다른 하나는 MSXML 이라는 녀석입니다.
MSXML 은 현재 버전이 4.0이고요, 이녀석에 대해서는 더 깊게는 다루지 않을 것입니다.
단지 두 녀석을 비교만 해보죠.
 
 
MSXML
.NET Framework Classes
Usage
COM 환경
.NET Managed 환경
XML 1.0 and
XML Namespace


XPath


XSLT


DOM Level1


DOM Level2 Core
 

XML Schemas


SOM
★(readonly)

SAX

 
 
이 정도의 차이가 있죠.
쓰임의 환경이 다르다는 가장 큰 차이가 있겠죠.
 
이정도로 할까요? 다음 글부터는 이제 실제 class를 들어 Pasing과 writing에 들어가 보도록 하겠습니다.
 
woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
허접하고 말주변이 없어...죄송합니다. ^^












저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'XML' 카테고리의 다른 글

[XML] AutomationML  (0) 2017.04.05
[XML] XML ??? ... (3)  (0) 2009.03.05
[XML] XML ??? ... (2)  (0) 2009.03.05
[XML] XML ??? ... (1)  (0) 2009.03.05
Posted by woojja
TAG xml
2009.03.05 21:57

오늘부터 요즘 내가 공부하고 있는 닷넷과 XML 에 대해 정리해서 올리고자 합니다.

내용이 허접하더라도 예쁘게 보아 주기 바라며 많은 질책과 질문을 보내주기 바랍니다.

이 글은 다른 사람들을 대상으로 했다기 보다 공부한 것을 정리한 것이라 생각해 주기 바랍니다.

아는 바가 없어 되도록이면 쉽게 풀어 나가겠지만 읽던 도중 의문점이나 틀린점이 발견되면 제게 한 수 알려주시기 바랍니다.

지금부터 몇번에 걸쳐 연재를 할 생각인데

순서는 이렇습니다.

일단은 닷넷에서 지원하고 있는 XML의 개요를 간단히 짚고 넘어 갈 것이고

XML 읽기, XML 쓰기, XML 쿼리하기, XML 조작, XML 변형, XML 전송, 그리고 XML Web service등을 짚고 넘어 갈 것입니다.

크게는 8부분이지만 한번에 한 부분씩 하는 것은 제게 무리가 따를 것 같은 생각이 드는군요. 그래서 되는 데로 많이 올려 빨리 XML 하나를 마치도록 하겠습니다.

 

그럼 시작해 보도록 할까요? ^^;

현재 기업들은 인터넷이라는 네트웍 건너의 다른 많은 업체와 데이터를 교환하고자 하고 있습니다. 이런 이유로 그러한 기업들은 시스템을 다시 구축하고, 변경하는데 막대한 시간과 돈을 들이고 있습니다.

그래서 현재 사용하고 있는 데이터와 파트너 사가 현재 사용하고 있는 데이터를 통합하는 것이 지금 프로그래머에게 닥친 문제라 하겠습니다.

이렇게 파트너사들과 데이터를 통합하려하는데 있어서 생각해 봐야 할 것들엔 어떤 것들이 있을까요? 통합을 어렵게 하는 점은 어떤 것이 있을까요?

그리고 그런 문제점은 어떻게 하면 해결을 할 수 있을까요?

1.       다른 프로그램들의 통합

현재 각 회사에서 실행중인 어플리케이션은 다른 OS 환경에서 동작하고 종류도 억쓰로 많습니다.

이런 상황에서 통합을 위해 시스템을 새로 구축하려 한다면? 뜨아… 상상치 못할 정도의 자금이 들 것입니다.

그리고 데이터가 저장되어있는 공간 또한 SQL Server 와 같이 RDBMS 에 저장되어있는 경우가 있기도 하고 문서파일에 저장되어있기도 하죠.

2.      서로 다른 문서 포맷사이에서의 translating

문제점들 가운데 가장 큰 문제라고 할 수 있는 점이죠.

예를 들어 Xml로 데이터들을 교환을 하겠다고 결정하더라도 xml의 특성중의 하나인 element나 attribute 사용에 있어서의 유연성 때문에 너무 많은 포맷이 나올 수 있을 것입니다.

교환된 xml파일을 바탕으로 각 포맷에 맞도록 다시 변환해야 하겠죠.

그래서 이점을 해결하려면 문서 포맷을 표준화 하는 것 밖에 없겠죠…

또한 데이터의 source는 RDBMS 보다는 많은 종류의 포맷으로 된 문서가 더욱 많을 것입니다. 예를 들면 CVS 파일이나 Tab을 구분된 파일, 워드파일일 수도 있고 XML 파일일 수도 있겠죠, text 파일일수도 있구요.

이런 파일로부터 다시 상대 회사에서 원하는 형태의 XML을 생성해야 하겠죠.

그리고 XML을 생성할 때는 데이터가 유효한 형태인지 그 구조가 정확한지를 check 해야 할 것입니다..

3.      데이터 탐색, 쿼리

여러 종류의 데이터 포맷의 데이터 source로부터 내가 필요로 하는 정보를 찾아내기란 쉬운 일이 아니겠죠..

찾아 낸 정보는 다시 나 자신이 원하는 형태로 출력하기 위해 비교하고 조합해야 할 것이구요.

4.       데이터 조작

그렇게 데이터를 변형하여 전의 데이터 포맷과는 다른 HTML이나 PDF와 같은 포맷의 문서로 변형시킬 수도 있어야 겠지요.

그 데이터들을 display 하고 report 하기도 해야 할 테니까 말이죠…

 

이러한 점들을 해결하기 위한 것을 XML이라고 본것이죠.

그 선택에서 단점보다는 장점을 더욱 많이 찾을 수 있기 때문일 것입니다.

그리고 .NET은 XML을 다루는 데 있어서 간편하고 다양한 interface를 제공하고 있습니다.

 

woojja ))*

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

허접하고 말주변이 없어...죄송합니다. ^^

 












저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

'XML' 카테고리의 다른 글

[XML] AutomationML  (0) 2017.04.05
[XML] XML ??? ... (3)  (0) 2009.03.05
[XML] XML ??? ... (2)  (0) 2009.03.05
[XML] XML ??? ... (1)  (0) 2009.03.05
Posted by woojja
TAG xml
이전버튼 1 이전버튼