以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  请斑竹进来帮小弟个忙,关于XML Schema  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=20457)


--  作者:NewBieInXML
--  发布时间:7/17/2005 3:49:00 PM

--  请斑竹进来帮小弟个忙,关于XML Schema
请将以下STEP文件转换成XML Schema,就靠这个毕业了,,救命啊,斑竹大哥,

头部段

ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP203' ),
    '1' );
FILE_NAME ('swh十字连轴器SG135.STEP',
    '2005-07-10T05:23:46',
    ( 'zxx' ),
    ( 'whut' ),
    'SwSTEP 2.0',
    'SolidWorks 2003240',
    '' );
FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' ));
ENDSEC;


--  作者:NewBieInXML
--  发布时间:7/17/2005 3:53:00 PM

--  
数据段
DATA;
#1 = EDGE_LOOP ( 'NONE', ( #58, #62, #65, #68 ) ) ;
#2 = ORIENTED_EDGE ( 'NONE', *, *, #3, .F. ) ;
#3 = EDGE_CURVE ( 'NONE', #13, #5, #558, .T. ) ;
#4 = ADVANCED_FACE ( 'NONE', ( #554 ), #553, .F. ) ;
#5 = VERTEX_POINT ( 'NONE', #548 ) ;
#6 = EDGE_CURVE ( 'NONE', #8, #5, #611, .T. ) ;
#7 = ORIENTED_EDGE ( 'NONE', *, *, #6, .T. ) ;
#8 = VERTEX_POINT ( 'NONE', #607 ) ;
#9 = EDGE_CURVE ( 'NONE', #11, #8, #606, .T. ) ;
#10 = ORIENTED_EDGE ( 'NONE', *, *, #9, .T. ) ;
#11 = VERTEX_POINT ( 'NONE', #602 ) ;
#12 = EDGE_CURVE ( 'NONE', #13, #11, #601, .T. ) ;
#13 = VERTEX_POINT ( 'NONE', #596 ) ;
#14 = ORIENTED_EDGE ( 'NONE', *, *, #12, .T. ) ;
#15 = ADVANCED_FACE ( 'NONE', ( #595 ), #592, .F. ) ;
#16 = MANIFOLD_SOLID_BREP ( 'NONE', #559 ) ;
#17 = EDGE_LOOP ( 'NONE', ( #14, #10, #7, #2 ) ) ;
#18 = ORIENTED_EDGE ( 'NONE', *, *, #19, .F. ) ;
#19 = EDGE_CURVE ( 'NONE', #45, #54, #593, .T. ) ;
#20 = ORIENTED_EDGE ( 'NONE', *, *, #24, .F. ) ;
#21 = ADVANCED_FACE ( 'NONE', ( #585 ), #583, .T. ) ;
#22 = EDGE_LOOP ( 'NONE', ( #20, #57, #106, #112 ) ) ;
#23 = VERTEX_POINT ( 'NONE', #579 ) ;
#24 = EDGE_CURVE ( 'NONE', #25, #55, #646, .T. ) ;
#25 = VERTEX_POINT ( 'NONE', #641 ) ;
#26 = VERTEX_POINT ( 'NONE', #640 ) ;
#27 = ADVANCED_FACE ( 'NONE', ( #639 ), #637, .F. ) ;
#28 = EDGE_LOOP ( 'NONE', ( #29, #33, #36, #39 ) ) ;
#29 = ORIENTED_EDGE ( 'NONE', *, *, #30, .T. ) ;
#30 = EDGE_CURVE ( 'NONE', #31, #32, #633, .T. ) ;
#31 = VERTEX_POINT ( 'NONE', #628 ) ;
#32 = VERTEX_POINT ( 'NONE', #627 ) ;
#33 = ORIENTED_EDGE ( 'NONE', *, *, #34, .T. ) ;
#34 = EDGE_CURVE ( 'NONE', #32, #35, #626, .T. ) ;
#35 = VERTEX_POINT ( 'NONE', #622 ) ;
#36 = ORIENTED_EDGE ( 'NONE', *, *, #37, .T. ) ;
#37 = EDGE_CURVE ( 'NONE', #35, #38, #621, .T. ) ;
#38 = VERTEX_POINT ( 'NONE', #616 ) ;
#39 = ORIENTED_EDGE ( 'NONE', *, *, #41, .F. ) ;
#40 = EDGE_LOOP ( 'NONE', ( #43, #47, #50, #18 ) ) ;
#41 = EDGE_CURVE ( 'NONE', #31, #38, #615, .T. ) ;
#42 = ADVANCED_FACE ( 'NONE', ( #679 ), #677, .F. ) ;
#43 = ORIENTED_EDGE ( 'NONE', *, *, #44, .T. ) ;
#44 = EDGE_CURVE ( 'NONE', #45, #46, #672, .T. ) ;
#45 = VERTEX_POINT ( 'NONE', #668 ) ;
#46 = VERTEX_POINT ( 'NONE', #667 ) ;
#47 = ORIENTED_EDGE ( 'NONE', *, *, #48, .T. ) ;
#48 = EDGE_CURVE ( 'NONE', #46, #49, #666, .T. ) ;
#49 = VERTEX_POINT ( 'NONE', #662 ) ;
#50 = ORIENTED_EDGE ( 'NONE', *, *, #56, .T. ) ;
#51 = ORIENTED_EDGE ( 'NONE', *, *, #149, .T. ) ;
#52 = EDGE_CURVE ( 'NONE', #55, #53, #661, .T. ) ;
#53 = VERTEX_POINT ( 'NONE', #657 ) ;
#54 = VERTEX_POINT ( 'NONE', #656 ) ;
#55 = VERTEX_POINT ( 'NONE', #655 ) ;
#56 = EDGE_CURVE ( 'NONE', #49, #54, #653, .T. ) ;
#57 = ORIENTED_EDGE ( 'NONE', *, *, #108, .T. ) ;
#58 = ORIENTED_EDGE ( 'NONE', *, *, #59, .T. ) ;
#59 = EDGE_CURVE ( 'NONE', #60, #61, #712, .T. ) ;
#60 = VERTEX_POINT ( 'NONE', #707 ) ;
#61 = VERTEX_POINT ( 'NONE', #706 ) ;
#62 = ORIENTED_EDGE ( 'NONE', *, *, #63, .T. ) ;
#63 = EDGE_CURVE ( 'NONE', #61, #64, #705, .T. ) ;
#64 = VERTEX_POINT ( 'NONE', #701 ) ;
#65 = ORIENTED_EDGE ( 'NONE', *, *, #66, .T. ) ;
#66 = EDGE_CURVE ( 'NONE', #64, #67, #700, .T. ) ;
#67 = VERTEX_POINT ( 'NONE', #695 ) ;
#68 = ORIENTED_EDGE ( 'NONE', *, *, #69, .F. ) ;
#69 = EDGE_CURVE ( 'NONE', #60, #67, #694, .T. ) ;
#70 = EDGE_CURVE ( 'NONE', #80, #77, #690, .T. ) ;
#71 = ADVANCED_FACE ( 'NONE', ( #686 ), #683, .T. ) ;
#72 = ORIENTED_EDGE ( 'NONE', *, *, #88, .T. ) ;
#73 = ORIENTED_EDGE ( 'NONE', *, *, #74, .T. ) ;
#74 = EDGE_CURVE ( 'NONE', #86, #79, #742, .T. ) ;
#75 = EDGE_CURVE ( 'NONE', #25, #148, #738, .T. ) ;
#76 = EDGE_LOOP ( 'NONE', ( #145, #152, #146, #155 ) ) ;
#77 = VERTEX_POINT ( 'NONE', #734 ) ;
#78 = EDGE_LOOP ( 'NONE', ( #72, #73, #120, #113 ) ) ;
#79 = VERTEX_POINT ( 'NONE', #733 ) ;
#80 = VERTEX_POINT ( 'NONE', #732 ) ;
#81 = VERTEX_POINT ( 'NONE', #731 ) ;
#82 = ORIENTED_EDGE ( 'NONE', *, *, #98, .T. ) ;
#83 = VERTEX_POINT ( 'NONE', #730 ) ;
#84 = ORIENTED_EDGE ( 'NONE', *, *, #85, .T. ) ;
#85 = EDGE_CURVE ( 'NONE', #83, #86, #729, .T. ) ;
#86 = VERTEX_POINT ( 'NONE', #725 ) ;
#87 = ORIENTED_EDGE ( 'NONE', *, *, #88, .F. ) ;
#88 = EDGE_CURVE ( 'NONE', #89, #86, #724, .T. ) ;
#89 = VERTEX_POINT ( 'NONE', #719 ) ;
#90 = ORIENTED_EDGE ( 'NONE', *, *, #91, .F. ) ;
#91 = EDGE_CURVE ( 'NONE', #92, #89, #718, .T. ) ;
#92 = VERTEX_POINT ( 'NONE', #713 ) ;
#93 = VERTEX_POINT ( 'NONE', #714 ) ;
#94 = ORIENTED_EDGE ( 'NONE', *, *, #95, .T. ) ;
#95 = EDGE_CURVE ( 'NONE', #81, #83, #776, .T. ) ;
#96 = ORIENTED_EDGE ( 'NONE', *, *, #97, .T. ) ;
#97 = EDGE_CURVE ( 'NONE', #92, #93, #770, .T. ) ;
#98 = EDGE_CURVE ( 'NONE', #53, #81, #777, .T. ) ;
#99 = EDGE_CURVE ( 'NONE', #55, #105, #786, .T. ) ;
#100 = ORIENTED_EDGE ( 'NONE', *, *, #24, .T. ) ;
ENDSEC;
END-ISO-10303-21;
--  作者:NewBieInXML
--  发布时间:7/17/2005 3:55:00 PM

--  
不稀一切代价,要是谁能帮我弄出来,一定重谢,
--  作者:fengzhiyi
--  发布时间:7/18/2005 9:02:00 AM

--  
我也不太清楚STEP文件,不过我从你的文件中感觉应该是将ISO-10303-21设为复杂数据类型,包括HEADER,DATA;HEADER也是复杂数据类型,包括FILE_DESCRIPTION 、FILE_NAME、FILE_SCHEMA 三个元素,DATA应为包括#1。。。#100的100个元素的复杂类型;其他的要根据元素的具体意思定义了。
--  作者:NewBieInXML
--  发布时间:7/18/2005 2:01:00 PM

--  
谢谢楼上的,我现在都不知道怎么写才好
--  作者:maggielee
--  发布时间:7/20/2005 3:16:00 PM

--  
问斑主,你用过dita 吗   或者你知道有谁再用dita ?  

我朋友这里dita 的负责人想了解一下dita在中国的用户群,所以想请你交流一下.谢谢.我的MSN:lee_82@hotmail.com


--  作者:maggielee
--  发布时间:7/20/2005 3:18:00 PM

--  
斑主,看到贴请速回.谢谢了.
--  作者:NewBieInXML
--  发布时间:7/26/2005 6:34:00 PM

--  
没听过,不好意思!
--  作者:fengzhiyi
--  发布时间:7/27/2005 11:04:00 AM

--  
看回了这么多贴,以为问题解决了,不好意思,我上贴已经把大框架阐述了,其实我感觉这个schema不难,你只要看一看schema的(复杂、简单)类型定义及结构,了解一下step文件的内容,很容易写,不要想得太复杂,更不要知难而退阿,深入进去,你就知道乐趣了。要不你给一点step文件的内容给我,我们共同讨论。我的QQ:45887890,几乎天天在线。
--  作者:再见理想
--  发布时间:8/4/2005 8:43:00 PM

--  
step是什么文件类型呢 不过将数据抽象化然后用XML数据类型描述我觉得可以
探讨探讨 我是小菜鸟
--  作者:NewBieInXML
--  发布时间:10/19/2005 2:19:00 PM

--  
楼上的你有联系方式吗?一起讨论一下啊~
--  作者:studyism
--  发布时间:10/23/2005 6:46:00 PM

--  
我也挺感兴趣
--  作者:xij
--  发布时间:11/30/2005 10:24:00 PM

--  
STEP p21 文件不是凭空产生的,它后面本身就有了一个EXPRESS模型。基于EXPRESS模型是很容易构建一个XML SCHMA的。
如果楼主一定要直接从STEP p21 文件来生成XML SCHMA,那么就先从p21 文件出发来建一个EXPRESS模型(在工程中这种情况是不可能有的)。从本质上说,STEP p21 文件和XML SCHMA是两个不同层次的东西,STEP p21 讲的是Instance data, XML SCHMA是一个conceptual model(不太准确)。
其实STEP P28就是讲XML的表示方法。
对于STEP这么重要一个标准,国内的研究还是这么少这么粗浅,实在让人遗憾。相关的有些信息可见: http://927802.k53.opensrs.cn/smfbb/index.php?PHPSESSID=acc6abfd10bf7499053d8c0f8715c756&topic=50.0

--  作者:98900969r
--  发布时间:11/30/2005 10:51:00 PM

--  
楼上的老兄,STEP很重要吗?我怎么觉得它有点中看不中用的感觉。你说的那个EXPRESS,听起来是好,可惜那些个语义建模的能力根本没有实现。整个STEP系列也大得可以了,但是从应用状况上里来讲,只怕还远远不及XML出来之前的SGML。看样子老兄在国外,不知在哪处呢,你能说说那边step的应用状况吗?偶说话比较随便,请别介意。

[此贴子已经被作者于2005-12-1 2:45:17编辑过]

--  作者:xij
--  发布时间:12/1/2005 6:06:00 PM

--  
STEP 和XML是两个互补的标准,并不能说一个可以替代另一个。 当然,STEP的定位在产品数据交换,这就决定它不可能成为一种普适的主流技术。而且楼上说得对,STEP太过庞大和复杂,要真正理解它很难,实施的困难大。但是,这些都不能否定STEP的重要性和有效性,我不想列举它的好处,但有个事实是欧美的好几个国防部指定STEP为数据交换标准,而航空航天中也应该是用STEP作为主要标准。
现在XML, UML都很火,拿EXPRESS和它们比,一个明显的优点是它表达CONSTRAINTS的能力。有兴趣的可以找它的Manual看。
--  作者:98900969r
--  发布时间:12/1/2005 8:19:00 PM

--  
谢谢参与讨论!
不过据我的了解,EXPRESS表达contraint的能力停留于描述,并没有哪个系统(或者工具,或者已经实现的形式语言)可以检验那些约束。这就等于是用自然语言描述约束一样。
从研究意义上讲,EXPRESS所追求的丰富语义能力肯定是需要的。但是这并不等于说EXPRESS就重要,只能说语义更丰富的形式语言很重要。一种形式语言,关键是它所能表达的形式语义,非形式语义再强也强不过自然语言。我个人认为这就是EXPRESS的弱点,它试图通过标准化来代替形式语义,这就像要通过穿制服来统一人的思想一样,统一的只能是表面,骨子里是不同的。UML有同样的问题,语义很丰富,但只能给人用,机器不懂UML。
美国确实技术很强。我所搞的专业跟CA(X)一样存在数据交换困难,这方面美国人也搞出了一堆标准,不乏国际上很受关注的标准。结果却没有一个大家愿意用的。我是想说明,一个标准不是说它是美国的或者ISO的就一定重要,一定好。标准局出面做的标准往往不行,标准局似乎就不应该出面做标准,只要从已有的技术里面选就好了。STEP也搞了20多年了,至今打不开局面,应该是有根本性的问题。
个人意见,欢迎批评指正!

--  作者:xij
--  发布时间:12/1/2005 10:16:00 PM

--  
标准的好坏我想只有实践可以证明,没有实施经验是没法评价的。
至于EXPRESS, 我们一般说它Semi-formal, 就是说它可以准确清晰地建模, 但本身不是formal language, 没法进行数学验证。这有好处也有坏处。简单说,好处是语言易于理解,坏处是没法进行数学意义上的证明。至于说对EXPRESS约束的检验,当前的工具是可以做的,如EDM; 我原来所在的研究组可以在EXPRESS上产生Java代码,对约束也可以检查。困难的是对约束之间的一致性检验。
至于楼主说的标准局似乎就不应该出面做标准,只是意气之话吧。我不与争辩。
--  作者:98900969r
--  发布时间:12/1/2005 11:01:00 PM

--  
你介绍的EXPRESS方面的研究比较难得一见。以前我试图用STEP和EXPRESS技术来做GIS数据交换,找来找去都找不到可用的工具。而对我的工作最有用mapping language, EXPRESS就有几个,却没有哪个实现了的,或者只实现trivial的功能,令人沮丧。
我仍坚持一个技术标准要可用,要解决问题。不过真是很高兴碰到你可以讨论这些东西。
--  作者:xij
--  发布时间:12/2/2005 12:33:00 AM

--  
国内在这方面的研究据我所知还很少,主要成果集中在欧美,而且也有了成熟的产品 (估计国内找不到盗版)。至于mapping language, EXPRESS-X很好用啊。我认为STEP应该很合适做GIS数据交换。我自己做了几个STEP的实施项目,对这标准挺有信心。
其实EXPRESS也不只是用在STEP中,石油和制造的标准中好多也用它来建模型。
也挺高兴和你讨论, 大家多交流。
--  作者:98900969r
--  发布时间:12/2/2005 1:35:00 AM

--  
好啊,看来碰到STEP专家了。我给你留个信,希望不吝赐教!如果不方便直接联系也没关系,就在这里讨论也很好。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
109.375ms