[Mono-list] dtd2xsd

Atsushi Eno atsushi@ximian.com
Thu, 09 Dec 2004 18:22:05 +0900


This is a multi-part message in MIME format.
--------------000606060003030804050502
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

Hi,

I had been wondering where to put this tiny tool in svn. So
right now I decided to just post it here.

It works only after r37469 (mono 1.1.3 does not work) and it
works only with mono (it is reflection-based hack).

Atsushi Eno

--------------000606060003030804050502
Content-Type: text/plain;
 name="dtd2xsd.cs"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="dtd2xsd.cs"

dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5SZWZsZWN0aW9u
Owp1c2luZyBTeXN0ZW0uWG1sOwp1c2luZyBTeXN0ZW0uWG1sLlNjaGVtYTsKCnVzaW5nIEJG
ID0gU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzOwoKY2xhc3MgRHRkMlhzZERyaXZl
cgp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbiAoc3RyaW5nIFtdIGFyZ3MpCgl7CgkJdHJ5
IHsKCQkJUnVuIChhcmdzKTsKCQl9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKCQkJQ29uc29s
ZS5Xcml0ZUxpbmUgKCJFUlJPUjogIiArIGV4Lk1lc3NhZ2UpOwoJCX0KCX0KCglzdGF0aWMg
dm9pZCBSdW4gKHN0cmluZyBbXSBhcmdzKQoJewoJCWlmIChhcmdzLkxlbmd0aCA8IDEpIHsK
CQkJQ29uc29sZS5Xcml0ZUxpbmUgKCJVU0FHRTogbW9ubyBkdGQyeHNkLmV4ZSBpbnN0YW5j
ZS14bWxmaWxlIFtvdXRwdXQteHNkZmlsZV0iKTsKCQkJcmV0dXJuOwoJCX0KCQlYbWxUZXh0
UmVhZGVyIHh0ciA9IG5ldyBYbWxUZXh0UmVhZGVyIChhcmdzIFswXSk7CgkJWG1sU2NoZW1h
IHhzZCA9IER0ZDJYc2QuUnVuICh4dHIpOwoJCWlmIChhcmdzLkxlbmd0aCA+IDEpCgkJCXhz
ZC5Xcml0ZSAobmV3IFN0cmVhbVdyaXRlciAoYXJncyBbMV0pKTsKCQllbHNlCgkJCXhzZC5X
cml0ZSAoQ29uc29sZS5PdXQpOwoJfQp9CgpwdWJsaWMgY2xhc3MgRHRkMlhzZAp7CglwdWJs
aWMgc3RhdGljIFhtbFNjaGVtYSBSdW4gKFhtbFRleHRSZWFkZXIgeHRyKQoJewoJCXdoaWxl
ICh4dHIuTm9kZVR5cGUgIT0gWG1sTm9kZVR5cGUuRG9jdW1lbnRUeXBlKSB7CgkJCWlmICgh
eHRyLlJlYWQgKCkpCgkJCQl0aHJvdyBuZXcgRXhjZXB0aW9uICgiRFREIGRpZCBub3QgYXBw
ZWFyZWQuIik7CgkJfQoKCQkvLyBIYWNreSByZWZsZWN0aW9uIHBhcnQKCQlvYmplY3QgaW1w
bCA9IHh0cjsKCQlCRiBmbGFnID0gQkYuTm9uUHVibGljIHwgQkYuSW5zdGFuY2U7CgoJCS8v
IEluIE1vbm8gTkVUXzJfMCBYbWxUZXh0UmVhZGVyIGlzIGp1c3QgYSB3cmFwcGVyIHdoaWNo
IAoJCS8vIGRvZXMgbm90IGNvbnRhaW4gRFREIGRpcmVjdGx5LgoJCUZpZWxkSW5mbyBmaSA9
IHR5cGVvZiAoWG1sVGV4dFJlYWRlcikuR2V0RmllbGQgKCJzb3VyY2UiLCBmbGFnKTsKCQlp
ZiAoZmkgIT0gbnVsbCkKCQkJaW1wbCA9IGZpLkdldFZhbHVlICh4dHIpOwoKCQlQcm9wZXJ0
eUluZm8gcGkgPSBpbXBsLkdldFR5cGUgKCkuR2V0UHJvcGVydHkgKCJEVEQiLCBmbGFnKTsK
CQlvYmplY3QgZHRkID0gcGkuR2V0VmFsdWUgKGltcGwsIG51bGwpOwoJCU1ldGhvZEluZm8g
bWkgPQoJCQlkdGQuR2V0VHlwZSAoKS5HZXRNZXRob2QgKCJDcmVhdGVYc2RTY2hlbWEiLCBm
bGFnKTsKCQlvYmplY3QgbyA9IG1pLkludm9rZSAoZHRkLCBudWxsKTsKCQlyZXR1cm4gKFht
bFNjaGVtYSkgbzsKCX0KfQoK
--------------000606060003030804050502--