以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  [求助]菜鸟问题.xsd和所谓的xml格式的Schema是什么关系?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=9320)


--  作者:Lans
--  发布时间:8/12/2004 1:28:00 PM

--  [求助]菜鸟问题.xsd和所谓的xml格式的Schema是什么关系?
如题 我就是弄不懂为什么.xml格式定义出来的东西就是不管事
我还没试过.xsd的 但是 那为什么教科书上还说.xml格式的Schema是具有xml特性的文档呢?
--  作者:kittypig
--  发布时间:8/12/2004 5:26:00 PM

--  
你定义的schema是按xml的标记的样子写的啊,所以是有xml特性的啊。我理解的是xsd就是一个schema啊,还是来定义xml规则的啊
--  作者:bird571
--  发布时间:9/1/2004 3:06:00 PM

--  
还是不太懂呀,有了xml,怎么又出来一个xsd??
--  作者:zhangsf
--  发布时间:9/1/2004 11:29:00 PM

--  
我们不妨做个比喻,xml是一个记录池,里面有很多的数据,DTD是这些数据的组成规则,但是DTD有一定的局限,比如,它无法定义数据的类型,所有我们还需要xml的规划(schema),这几种文件,都符合xml规范,所以他们都是xml的文件
--  作者:hhzhen
--  发布时间:9/6/2004 4:59:00 PM

--  
不是建一个*.XML文件,然后再相应建一个*.XSL文件就行了吗,怎么还需要*.DTD文件
--  作者:fancy_zh
--  发布时间:9/8/2004 10:16:00 AM

--  
那你的xml文档是按照怎么写的呢?你在写一个xml文档时怎么知道一个元素里应该有几个子元素或者属性呢,每个子元素或者属性都是什么类型呢(如数字或者字符串),而定义这些约束的就需要DTD或者schema,这个过程就是数据建模
--  作者:追梦少年
--  发布时间:9/9/2004 1:34:00 AM

--  
xsd是来规定XML的.
xsd 是Schema的一种
--  作者:newmoon
--  发布时间:9/30/2004 12:34:00 PM

--  
我认为schema和DTD就像一个模板一样,xml文档必须符合模板才能算是有效的xml文档,而xsl是负责显示xml文档!
--  作者:paperrat
--  发布时间:9/30/2004 12:51:00 PM

--  
不过能不能回答,这个东西建好模以后,生成了相应的xml,怎么让两者之间发生关系呢?
我是新人,真的不是很明白啊,该怎么用呢?有谁可以指点我?
谢谢啦
--  作者:moon1128
--  发布时间:10/20/2004 9:40:00 AM

--  
XML是数据的集合。
XSD是用来验证数据是否正确,比如你的XML数据要写进数据库,如果不验证,可能就会有很多问题。
当你的XML通过XSD验证后,就可以用XSL进行格式化。生成HTML,矢量图形等。。。
--  作者:fxh312b
--  发布时间:10/22/2004 6:58:00 PM

--  
XSD是W3C推荐的XML SCHEMA标准,SCHEMA即描述XML的结构和元素关系的规则模式,他规定了一个xml文档可以使用那些元素、元素的类型以及一些限制规则。schema和DTD一样,都是描述xml的,只不过SCHEMA的内容更丰富,更具有扩展性,同时他本身也是一个xml文档,更方便解析。
--  作者:andy_caowei
--  发布时间:3/15/2005 10:24:00 AM

--  
XSD是XML Schema Definition的缩写,它本身也是XMl的一个变形子集,用于规定XMl文档的格式。举个例子说:“XMl是C语言,那么XSD就是你用C语言编写的类,而某个XMl数据文档就是你用刚刚编写的那个类的实例化,也就是按照类的定义申请了一个内存空间,并存储相应的数据。”
--  作者:killerli
--  发布时间:3/22/2005 5:15:00 AM

--  
还是没有很明白!不过谢谢!
--  作者:difuk
--  发布时间:3/23/2005 9:35:00 AM

--  

XML schema 包括 XML Schema 和 DTD 两种,(注意官方文件中的大小写)
他们都是用来规定 存放数据的 XML文档  的格式性文档。
前者是扩展名是.xsd,后者扩展名是.dtd。
初学拙见,不对请指正。QQ:12017449 无验证,欢迎交流。并诚邀高手加我。
--  作者:stlsm
--  发布时间:3/23/2005 11:53:00 AM

--  
怎么用XSD来验证XML啊,如果验证不成功,返回什么信息?
--  作者:stlsm
--  发布时间:3/23/2005 11:56:00 AM

--  
怎么用XSD来验证XML啊,如果验证不成功,返回什么信息?
--  作者:stlsm
--  发布时间:3/23/2005 11:58:00 AM

--  
怎么用XSD来验证XML啊,如果验证不成功,返回什么信息?
--  作者:kenthz
--  发布时间:3/23/2005 9:09:00 PM

--  
如果你使用java编程,可以Java API(Java API for XML Processing, JAXP)1.2 对xml文档进行模式验证。
import java.lang.String;
import java.io.*;
import org.xml.sax.*;
import javax.xml.parsers.*;

public class ValidateXML {
 static String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";

 static String XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";

 static String SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";

 static boolean validatechecksuccess;

 static void validate(String xmlfilename, String shemafilename) {
  validatechecksuccess = true;
  File input = new File(xmlfilename);
  File schema = new File(shemafilename);
  SAXParserFactory factory = SAXParserFactory.newInstance();
  factory.setNamespaceAware(true);
  factory.setValidating(true);
  try {
   SAXParser parser = factory.newSAXParser();
   parser.setProperty(SCHEMA_LANGUAGE, XML_SCHEMA);
   parser.setProperty(SCHEMA_SOURCE, schema);
   parser.parse(input, new SAXErrorPrinter());
  } catch (SAXNotRecognizedException e) {
   System.err.println("Unknown property specified:" + e.getMessage());
  } catch (SAXNotSupportedException e) {
   System.err.println("Unsupported property specified:"
     + e.getMessage());
  } catch (ParserConfigurationException e) {
   System.err.println("Your SAX parser is not JAXP 1.2 compliant."
     + e.getMessage());
  } catch (SAXException e) {
   System.err.println("Your SAX parser is not JAXP 1.2 compliant."
     + e.getMessage());
  } catch (IOException e) {
   System.err.println("Your SAX parser is not JAXP 1.2 compliant."
     + e.getMessage());
  } catch (Exception e) {
   System.err.println("Your SAX parser is not JAXP 1.2 compliant."
     + e.getMessage());
  }
 }
}
这个类的静态方法validate第一个参数是需要验证的xml文档(*.xml),第二个是相对应的schema文档(*.xsd)。其中还注册了一个ErrorHandler,在贴一个处理程序。
import java.text.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;

public class SAXErrorPrinter extends DefaultHandler {
 private MessageFormat message = new MessageFormat("({0}: {1}, {2}): {3}");

 private void print(SAXParseException x) {
  String msg = this.message.format(new Object[] { x.getSystemId(),
    new Integer(x.getLineNumber()),
    new Integer(x.getColumnNumber()), x.getMessage() });
  System.err.println(msg);
  ValidateXML.validatechecksuccess = false;
 }

 public void warning(SAXParseException x) {
  this.print(x);
 }

 public void error(SAXParseException x) {
  this.print(x);
 }

 public void fatalError(SAXParseException x) throws SAXParseException {
  this.print(x);
  throw x;
 }
}


--  作者:颜焰
--  发布时间:4/17/2005 12:28:00 PM

--  
xml 是文件具体的内容,XSD是SCHEMA存档的拓展名??
DTD 其实是SCHEMA 的一种,SCHEMA 的功能是为了使XML 格式化,让XML有个通用且固定的格式,XSL 是 XML具体在SCREEN显示的格式?
DOM是什么呢?
这样理解对不对?
--  作者:那面海
--  发布时间:4/18/2005 4:54:00 PM

--  
这说法不对
--  作者:xyin2005
--  发布时间:4/21/2005 9:51:00 AM

--  
搞个对的,别让我们猜了
--  作者:liqi_fly905@sohu.com
--  发布时间:5/17/2005 5:32:00 PM

--  

DTD和Schema都是验证xml合法性的文档类型定义.DTD有其自身的语法,而Schema使用xml标记,而且支持更多的数据类型.因此,Schema慢慢将取代DTD.xml的优势在于它的通用性,尤其在网络上传输数据时.
--  作者:whizer
--  发布时间:7/6/2005 4:43:00 PM

--  
同意楼上说的,我认为最权威的解释如下:
DTD:The purpose of a Document Type Definition is to define the legal building blocks of an XML document. It defines the document structure with a list of legal elements.

XML Schema:XML Schema is an XML based alternative to DTD.An XML schema describes the structure of an XML document.The XML Schema language is also referred to as XML Schema Definition (XSD).

CSS = HTML Style Sheets:HTML uses predefined tags and the meaning of the tags are well understood.

XSL = XML Style Sheets:XML does not use predefined tags (we can use any tag-names we like), and the meaning of these tags are not well understood.


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
117.188ms