xml schema를 이용하여 xml문서를 만들려고 하는데요..

zeroness의 이미지

xml schema를 이용하여 xml문서를 생성하는
프로그램을 만들려고 합니다.
xml schema에는 엘리먼트와 각 엘리먼트의 데이터타입이
있는데요.. 먼저 주어진 xml스키마를 파싱하여 요구되는 데이터를
사용자로부터 입력받아서 스키마의 데이터타입에서 지정한 형식
으로 데이터타입을 변환후 xml파일을 생성하려 합니다.
그런데 데이터타입이 simpleType의 경우에는 그래도 쉽게(?)
코딩이 가능할거 같습니다만, complexType까지 지원이
되게끔 하려니 어찌해야 할지 좀 막막합니다...ㅜㅡ
xml라이브러리로 xerces또는 xalan을 사용하려 하는데요..
샘플파일을 봐도 별 도움이 안되는거 같네요..
혹시 xerces나 xalan을 이용하여 xml스키마를 파싱하는법에
관한 자료나 샘플코드 같은걸 좀 구할수 없을까요?

atie의 이미지

zeroness wrote:
...
xml schema에는 엘리먼트와 각 엘리먼트의 데이터타입이
있는데요.. 먼저 주어진 xml스키마를 파싱하여 요구되는 데이터를
사용자로부터 입력받아서 스키마의 데이터타입에서 지정한 형식
으로 데이터타입을 변환후 xml파일을 생성하려 합니다.
...

이 부분을 자세히 설명을 해주세요. schema을 읽어서 dynamic form을 만들어 유저 입력을 받겠다는 의미인가요?
아니라면, xsl에 입력 form을 미리 정의해서 html은 xslt로 dynamic하게 만들고, 유저 입력이 submit되면 xml을 메모리 또는 파일 상에 만들어 schema로 validation만 해서 에러가 있으면 에러 페이지를 보이고, 없으면 xml을 저장하는 방식도 괜찮죠. 다만, xsl과 schema을 따로 유지보수를 해주어야 하지만, 하나가 수정되면 따라서 다른 하나도 자동 수정하는 것은 하기 나름일지도...
parser라면 xerces나 jaxp로 찾아보시면 되고, xalan은 xslt 기능에 xerces의 parser를 사용한다고 보면 됩니다. (그러니 xalan 하나면 됩니다.)
http://www.xml.com/pub/a/2003/04/30/editing.html 읽어보시고, 깊이 있는 내용은 XForms과 cocoon으로 찾아보세요.

----
I paint objects as I think them, not as I see them.
atie's minipage

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.