??xml version="1.0" encoding="utf-8" standalone="yes"?>粉嫩久久99精品久久久久久夜,国产精品久久一区二区三区,日韩精品亚洲一区二区三区免费http://www.aygfsteel.com/freeman1984/category/43702.html STANDING ON THE SHOULDERS OF GIANTSzh-cnFri, 11 Nov 2011 12:14:00 GMTFri, 11 Nov 2011 12:14:00 GMT60xmlrpc介绍和?/title><link>http://www.aygfsteel.com/freeman1984/archive/2011/11/11/363526.html</link><dc:creator>疯狂</dc:creator><author>疯狂</author><pubDate>Fri, 11 Nov 2011 06:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/freeman1984/archive/2011/11/11/363526.html</guid><wfw:comment>http://www.aygfsteel.com/freeman1984/comments/363526.html</wfw:comment><comments>http://www.aygfsteel.com/freeman1984/archive/2011/11/11/363526.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/freeman1984/comments/commentRss/363526.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/freeman1984/services/trackbacks/363526.html</trackback:ping><description><![CDATA[     摘要: xmlrpc介绍Qƈ模拟blogjava的xml-rpc api写个例子?<br>  <a href='http://www.aygfsteel.com/freeman1984/archive/2011/11/11/363526.html'>阅读全文</a><img src ="http://www.aygfsteel.com/freeman1984/aggbug/363526.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/freeman1984/" target="_blank">疯狂</a> 2011-11-11 14:58 <a href="http://www.aygfsteel.com/freeman1984/archive/2011/11/11/363526.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>object<->XML之jaxb http://www.aygfsteel.com/freeman1984/archive/2011/11/11/363522.html疯狂疯狂Fri, 11 Nov 2011 06:25:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/11/11/363522.htmlhttp://www.aygfsteel.com/freeman1984/comments/363522.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/11/11/363522.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/363522.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/363522.html上一?a href="http://www.aygfsteel.com/freeman1984/archive/2010/01/29/311206.html">http://www.aygfsteel.com/freeman1984/archive/2010/01/29/311206.html单的介绍?jin)用Simple来进行xml和bean之间的{换。这里主要写个小例子来介ljdk自带的jaxb来进行bean到xml之间的{换?br /> 
JAXBQJava API for XML BindingQ,提供?jin)一个快速便L(fng)方式Java对象与XMLq行转换。在JAX-WSQJava的WebService规范之一Q中QJDK1.6 自带的版本JAX-WS2.1Q其底层支持是JAXB?nbsp;
    JAXB 可以实现Java对象与XML的相互{换,在JAXB中,一个Java对象转换为XML的过E称之ؓ(f)MarshalQ将XML转换为Java对象的过E称之ؓ(f)UnMarshal。我们可以通过?Java cM标注注解的方式将一个Java对象l定CDXMLQ也是_(d)在JavacM标注一些注解,q些注解定义?jin)如何将q个c{换ؓ(f)XMLQ怎么转换Q以?qing)一DXML如何被解析成q个cL定义的对象;也可以用JAXB的XJC工具Q通过定义schema的方式实现Java对象与XML的绑定?
下面是个单xml和object互相转换的例子:(x)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name 
= "testUser", propOrder = "userName""email" })
public class TestUser {

    @XmlAttribute
    
protected String id;

    @XmlElement(name 
= "username")
    
protected String userName;

    @XmlElement(name 
= "e-mail")
    
private String email;
        
         get set.

1 从object--》xml
public static void main(String[] args) {
           TestUser test 
= new TestUser();
           test.setUserName(
"疯狂joe");
           test.setId(
"9001");
           StringWriter xml 
= new StringWriter();
           JAXB.marshal(test,xml);
           System.out.println(xml);
       }

打印Q?br />
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<testUser id="9001">
    
<username>疯狂joe</username>
</testUser>
2 从xml--》object
public static void main(String[] args) {

           String x 
= "<testUser id=\"9001\">"+
                        
"<username>疯狂joe</username>"+
                      
"</testUser>";
           StringReader reader 
= new StringReader(x);
           System.out.println(JAXB.unmarshal(reader,TestUser.
class));
       }
打印Q?br />TestUser [email=null, id=9001, userName=疯狂joe]
下面是JAXB中主要的一些注解?
@XmlRootElement   一个JavacLؓ(f)一DXML的根节点
参数Qname            定义q个根节点的名称 
          namespace   定义q个根节点命名空?
@XmlAccessorType  定义映射q个cM的何U类型需要映到XML。可接收四个参数Q分别是Q?nbsp;
      XmlAccessType.FIELDQ映这个类中的所有字D到XML 
      XmlAccessType.PROPERTYQ映这个类中的属性(get/setҎ(gu)Q到XML 
      XmlAccessType.PUBLIC_MEMBERQ将q个cM的所有public的field或property同时映射到XMLQ默认)(j) 
      XmlAccessType.NONEQ不映射
@XmlElement  指定一个字D|get/setҎ(gu)映射到XML的节炏V如Q当一个类的XmlAccessorType 被标注ؓ(f)PROPERTYӞ在某一个没有get/setҎ(gu)的字D上标注此注解,卛_该字段映射到XML?
参数QdefaultValue  指定节点默认?nbsp;
         name             指定节点名称 
         namespace    指定节点命名I间 
         required         是否必须Q默认ؓ(f)falseQ?nbsp;
         nillable           该字D|否包?nillable="true" 属性(默认为falseQ?nbsp;
         type               定义该字D|属性的兌cd
@XmlAttribute  指定一个字D|get/setҎ(gu)映射到XML的属性?
参数Qname             指定属性名U?nbsp;
         namespace    指定属性命名空?nbsp;
         required         是否必须Q默认ؓ(f)falseQ?br />@XmlTransient  定义某一字段或属性不需要被映射为XML。如Q当一个类的XmlAccessorType 被标注ؓ(f)PROPERTYӞ在某一get/setҎ(gu)的字D上标注此注解,那么该属性则不会(x)被映?br />@XmlType  定义映射的一些相兌?
参数QpropOrder        指定映射XML时的节点序 
         factoryClass     指定UnMarshal时生成映类实例所需的工厂类Q默认ؓ(f)q个cLw?nbsp;
         factoryMethod  指定工厂cȝ工厂Ҏ(gu) 
         name               定义XML Schema中type的名U?nbsp;
         namespace      指定Schema中的命名I间
@XmlElementWrapper  为数l元素或集合元素定义一个父节点。如Q类中有一元素为List itemsQ若不加此注解,该元素将被映ؓ(f) 
    <items>...</items> 
    <items>...</items>
q种形式Q此注解可将q个元素q行包装Q如Q?nbsp;
    @XmlElementWrapper(name="items")
    @XmlElement(name="item")
    public List items;
会(x)生成q样的XML样式Q?nbsp;
    <items> 
        <item>...</item> 
        <item>...</item> 
    </items>
@XmlJavaTypeAdapter  自定义某一字段或属性映到XML的适配器。如Q类中包含一个接口,我们可以定义一个适配器(l承自javax.xml.bind.annotation.adapters.XmlAdapterc)(j)Q指定这个接口如何映到XML?


疯狂 2011-11-11 14:25 发表评论
]]>
dom4j通过xpath查询xml (?http://www.aygfsteel.com/freeman1984/archive/2011/11/09/363271.html疯狂疯狂Wed, 09 Nov 2011 02:45:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2011/11/09/363271.htmlhttp://www.aygfsteel.com/freeman1984/comments/363271.htmlhttp://www.aygfsteel.com/freeman1984/archive/2011/11/09/363271.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/363271.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/363271.html
  • 获取Document
    • SAXReader saxReader = new SAXReader();
    • Document document = saxReader.read(FileUtil.getFileInputStream(fileName));
  • 查询Element
    • String xpath ="/composites/composite[@type='onDelete']";//查询属性type='ondDelete'的composite
    • List<Element> composites = document.selectNodes(xpath);
  • xpath语法
  • 选取节点

    XPath 使用路径表达式在 XML 文档中选取节点。节Ҏ(gu)通过沿着路径或?step 来选取的?/p>

    下面列出?jin)最有用的\径表辑ּQ?/h3>
    表达?/th> 描述
    nodename 选取此节点的所有子节点
    / 从根节点选取
    // 从匹配选择的当前节炚w择文档中的节点Q而不考虑它们的位|?/td>
    . 选取当前节点
    .. 选取当前节点的父节点
    @ 选取属?/td>

    实例

    在下面的表格中,我们已列Z(jin)一些\径表辑ּ以及(qing)表达式的l果Q?/p>
    路径表达?/th> l果
    bookstore 选取 bookstore 元素的所有子节点
    /bookstore

    选取根元?bookstore

    注释Q假如\径v始于正斜? / )Q则此\径始l代表到某元素的l对路径Q?/p>

    bookstore/book 选取所有属?bookstore 的子元素?book 元素?/td>
    //book 选取所?book 子元素,而不它们在文档中的位置?/td>
    bookstore//book 选择所有属?bookstore 元素的后代的 book 元素Q而不它们位?bookstore 之下的什么位|?/td>
    //@lang 选取所有名?lang 的属性?/td>

    谓语QPredicatesQ?/h2>

    谓语用来查找某个特定的节Ҏ(gu)者包含某个指定的值的节点?/p>

    谓语被嵌在方括号中?/p>

    实例

    在下面的表格中,我们列出?jin)带有谓语的一些\径表辑ּQ以?qing)表辑ּ的结果?x)

    路径表达?/th> l果
    /bookstore/book[1] 选取属于 bookstore 子元素的W一?book 元素?/td>
    /bookstore/book[last()] 选取属于 bookstore 子元素的最后一?book 元素?/td>
    /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数W二?book 元素?/td>
    /bookstore/book[position()<3] 选取最前面的两个属?bookstore 元素的子元素?book 元素?/td>
    //title[@lang] 选取所有拥有名?lang 的属性的 title 元素?/td>
    //title[@lang='eng'] 选取所?title 元素Q且q些元素拥有gؓ(f) eng ?lang 属性?/td>
    /bookstore/book[price>35.00] 选取所?bookstore 元素?book 元素Q且其中?price 元素的值须大于 35.00?/td>
    /bookstore/book[price>35.00]/title 选取所?bookstore 元素中的 book 元素?title 元素Q且其中?price 元素的值须大于 35.00?/td>

    选取未知节点

    XPath 通配W可用来选取未知?XML 元素?/p>
    通配W?/th> 描述
    * 匚wM元素节点
    @* 匚wM属性节?/td>
    node() 匚wMcd的节?/td>

    实例

    在下面的表格中,我们列出?jin)一些\径表辑ּQ以?qing)这些表辑ּ的结果?x)

    路径表达?/th> l果
    /bookstore/* 选取 bookstore 元素的所有子节点
    //* 选取文档中的所有元?/td>
    //title[@*] 选取所有带有属性的 title 元素?/td>

    选取若干路径

    通过在\径表辑ּ中?#8220;|”q算W,(zhn)可以选取若干个\径?/p>

    实例

    在下面的表格中,我们列出?jin)一些\径表辑ּQ以?qing)这些表辑ּ的结果?x)

    路径表达?/th> l果
    //book/title | //book/price 选取所?book 元素?title ?price 元素?/td>
    //title | //price 选取所有文档中?title ?price 元素?/td>
    /bookstore/book/title | //price 选取所有属?bookstore 元素?book 元素?title 元素Q以?qing)文档中所有的 price 元素?/td>


    XPath ?/h2>

    轴可定义某个相对于当前节点的节点集?/p>
    轴名U?/th> l果
    ancestor 选取当前节点的所有先辈(父、祖父等Q?/td>
    ancestor-or-self 选取当前节点的所有先辈(父、祖父等Q以?qing)当前节?gu)w?/td>
    attribute 选取当前节点的所有属?/td>
    child 选取当前节点的所有子元素?/td>
    descendant 选取当前节点的所有后代元素(子、孙{)(j)?/td>
    descendant-or-self 选取当前节点的所有后代元素(子、孙{)(j)以及(qing)当前节点本n?/td>
    following 选取文档中当前节点的l束标签之后的所有节炏V?/td>
    namespace 选取当前节点的所有命名空间节?/td>
    parent 选取当前节点的父节点?/td>
    preceding 选取文档中当前节点的开始标{之前的所有节炏V?/td>
    preceding-sibling 选取当前节点之前的所有同U节炏V?/td>
    self 选取当前节点?/td>

    位置路径表达?/h2>

    位置路径可以是绝对的Q也可以是相对的?/p>

    l对路径起始于正斜杠( / )Q而相对\径不?x)这栗在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分Ԍ(x)

    l对位置路径Q?/h3>
    /step/step/...

    相对位置路径Q?/h3>
    step/step/...

    每个步均Ҏ(gu)当前节点集之中的节点来进行计?/p>

    步(stepQ包括:(x)

    _(d)axisQ?/dt>
    定义所选节点与当前节点之间的树(wi)关系
    节点试Qnode-testQ?/dt>
    识别某个轴内部的节点
    零个或者更多谓语(predicateQ?/dt>
    更深入地提炼所选的节点?/dd>

    步的语法Q?/h3>
    轴名U?:节点试[谓语]

    实例

    例子 l果
    child::book 选取所有属于当前节点的子元素的 book 节点
    attribute::lang 选取当前节点?lang 属?/td>
    child::* 选取当前节点的所有子元素
    attribute::* 选取当前节点的所有属?/td>
    child::text() 选取当前节点的所有文本子节点
    child::node() 选取当前节点的所有子节点
    descendant::book 选取当前节点的所?book 后代
    ancestor::book 选择当前节点的所?book 先辈
    ancestor-or-self::book 选取当前节点的所有book先辈以及(qing)当前节点Q假如此节点是book节点的话Q?/td>
    child::*/child::price 选取当前节点的所?price 孙?/td>

    XPath q算W?/h2>

    下面列出?jin)可用?XPath 表达式中的运符Q?/p>
    q算W?/th> 描述 实例 q回?/th>
    | 计算两个节点?/td> //book | //cd q回所有带?book ?ck 元素的节炚w
    + 加法 6 + 4 10
    - 减法 6 - 4 2
    * 乘法 6 * 4 24
    div 除法 8 div 4 2
    = {于 price=9.80

    如果 price ?9.80Q则q回 true?/p>

    如果 price ?9.90Q则q回 fasle?/p>

    != 不等?/td> price!=9.80

    如果 price ?9.90Q则q回 true?/p>

    如果 price ?9.80Q则q回 fasle?/p>

    < price<9.80

    如果 price ?9.00Q则q回 true?/p>

    如果 price ?9.90Q则q回 fasle?/p>

    <= 于或等?/td> price<=9.80

    如果 price ?9.00Q则q回 true?/p>

    如果 price ?9.90Q则q回 fasle?/p>

    > 大于 price>9.80

    如果 price ?9.90Q则q回 true?/p>

    如果 price ?9.80Q则q回 fasle?/p>

    >= 大于或等?/td> price>=9.80

    如果 price ?9.90Q则q回 true?/p>

    如果 price ?9.70Q则q回 fasle?/p>

    or ?/td> price=9.80 or price=9.70

    如果 price ?9.80Q则q回 true?/p>

    如果 price ?9.50Q则q回 fasle?/p>

    and ?/td> price>9.00 and price<9.90

    如果 price ?9.80Q则q回 true?/p>

    如果 price ?8.50Q则q回 fasle?/p>

    mod 计算除法的余?/td> 5 mod 2 1

    转自Q?a >http://txy920.blog.163.com/blog/static/1494427820095922212262/

    疯狂 2011-11-09 10:45 发表评论
    ]]>
    object<->XML之simplehttp://www.aygfsteel.com/freeman1984/archive/2010/01/29/311206.html疯狂疯狂Fri, 29 Jan 2010 05:07:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2010/01/29/311206.htmlhttp://www.aygfsteel.com/freeman1984/comments/311206.htmlhttp://www.aygfsteel.com/freeman1984/archive/2010/01/29/311206.html#Feedback2http://www.aygfsteel.com/freeman1984/comments/commentRss/311206.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/311206.html       Simple 是一?Java 框架Q用于简化序列化和反序列?XML 的过E。?SimpleQ开发h员可以简化(名字由此而来Q将单?Java 对象QPOJOQ{换成 XML 文档的过E??x(chng)谓的序列化(serializationQ?/em>q程。Simple 也可?j)进相反的过E:(x)开发h员可以将 XML 文档转换?POJO ?x(chng)谓的反序列化QdeserializationQ?/em>q程?/p>

        Simple 名副其实Q它使用注解来支持序列化和反序列化过E。根据相应的 XML 文档应该如何出现Q对 POJO q行注解。一些字D被注解为属性,另一些字D被注解为元素。类通常被注解ؓ(f)根元素。在序列化过E中Q该框架处理冗长的解释注解和产生相应 XML 文档的过E。无ؓ(f)奇,?XML 文档被{换成 POJO 的反序列化过E中Q注解也?x)被解释?/p>

    使用 Simple 有几个优ѝ首先,它促(j)q快速应用程序开发。Simple 是如此简单,它支持开发h员快速实现健壮的、?XML 序列化和反序列化的应用程序,无需完成镉K的学?fn)曲U以?qing)付出繁重的开发劳动?/p>

    其次QSimple 不需要配|。前面已l提刎ͼSimple 使用注解。这些注解取代了(jin)Z XML 的配|文Ӟ其他框架一般都有这L(fng)配置文gQ?/p>

    最后,Simple 只让使用它的应用E序增加量的内存占用。JAR文g只有 239 KB。Simple 也不依赖于一pd其他 JAR 文gQ而其他框架则通常不是q样的?br /> jar下蝲地址Q?font style="background-color: #cce8cf">http://simple.sourceforge.net/track/get.php?version=2.2&package=simple-xml-2.2.zip

     单实例:(x)bean--》xml
     beanQ?br />

    @Root
    public class Example {
    @Element
    private String text;
    @Attribute
    private int index;
    public Example() {
    super();
    }
    public Example(String text, int index) {
    this.text = text;
    this.index = index;
    }
    public String getMessage() {
    return text;
    }
    public int getId() {
    return index;
    }
    }
    
    试代码Q?br />
    Serializer serializer = new Persister();
    Example example = new Example("Example message", 123);
    File result = new File("example.xml");
    serializer.write(example, result);
    
    生成xml文gQ?br />
    <example index="123">
    <text>Example message</text>
    </example>
    


    xml-->bean:
    试代码Q?br /> Serializer serializer = new Persister();
    File source = new File("example.xml");

    Example example = serializer.read(Example.class, source);




    疯狂 2010-01-29 13:07 发表评论
    ]]>
    dtd xsdhttp://www.aygfsteel.com/freeman1984/archive/2010/01/21/310442.html疯狂疯狂Thu, 21 Jan 2010 14:44:00 GMThttp://www.aygfsteel.com/freeman1984/archive/2010/01/21/310442.htmlhttp://www.aygfsteel.com/freeman1984/comments/310442.htmlhttp://www.aygfsteel.com/freeman1984/archive/2010/01/21/310442.html#Feedback0http://www.aygfsteel.com/freeman1984/comments/commentRss/310442.htmlhttp://www.aygfsteel.com/freeman1984/services/trackbacks/310442.html

    声明一个元?/h2>

    ?DTD 中,XML 元素通过元素声明来进行声明。元素声明用下面的语法Q?/p>

    <!ELEMENT 元素名称 cd>

    或?/p>

    <!ELEMENT 元素名称 (元素内容)>

    I元?/h2>

    I元素通过cd关键词EMPTYq行声明Q?/p>

    <!ELEMENT 元素名称 EMPTY>

    例子Q?/h3>
    <!ELEMENT br EMPTY>

    XML例子Q?/h3>
    <br />

    只有 PCDATA 的元?/h2>

    只有 PCDATA 的元素通过圆括号中?#PCDATA q行声明Q?/p>

    <!ELEMENT 元素名称 (#PCDATA)>

    例子Q?/h3>
    <!ELEMENT from (#PCDATA)>

    带有M内容的元?/h2>

    通过cd关键?ANY 声明的元素,可包含Q何可解析数据的组合:(x)

    <!ELEMENT 元素名称 ANY>

    例子Q?/h3>
    <!ELEMENT note ANY>

    带有子元素(序列Q的元素

    带有一个或多个子元素的元素通过圆括号中的子元素名进行声明:(x)

    <!ELEMENT 元素名称 (子元素名U?1)>

    或?/p>

    <!ELEMENT 元素名称 (子元素名U?1,子元素名U?2,.....)>

    例子Q?/h3>
    <!ELEMENT note (to,from,heading,body)>

    当子元素按照由逗号分隔开的序列进行声明时Q这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素?note" 元素的完整声明是Q?/p>

    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to      (#PCDATA)>
    <!ELEMENT from    (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body    (#PCDATA)>

    声明只出Cơ的元素

    <!ELEMENT 元素名称 (子元素名U?>

    例子Q?/h3>
    <!ELEMENT note (message)>

    上面的例子声明了(jin)Qmessage 子元素必dCơ,q且必须只在 "note" 元素中出Cơ?/p>

    声明最出Cơ的元素

    <!ELEMENT 元素名称 (子元素名U?)>

    例子Q?/h3>
    <!ELEMENT note (message+)>

    上面的例子中的加号声明了(jin)Qmessage 子元素必d "note" 元素内出现至一ơ?/p>

    声明出现零次或多ơ的元素

    <!ELEMENT 元素名称 (子元素名U?)>

    例子Q?/h3>
    <!ELEMENT note (message*)>

    上面的例子中的星号声明了(jin)Q子元素 message 可在 "note" 元素内出现零ơ或多次?/p>

    声明出现零次或一ơ的元素

    <!ELEMENT 元素名称 (子元素名U?)>

    例子Q?/h3>
    <!ELEMENT note (message?)>

    上面的例子中的问号声明了(jin)Q子元素 message 可在 "note" 元素内出现零ơ或一ơ?/p>

    声明“?../?..”cd的内?/h2>

    例子Q?/h3>
    <!ELEMENT note (to,from,header,(message|body))>

    上面的例子声明了(jin)Q?note" 元素必须包含 "to" 元素?from" 元素?header" 元素Q以?qing)?"message" 元素?"body" 元素?/p>

    声明混合型的内容

    例子Q?/h3>
    <!ELEMENT note (#PCDATA|to|from|header|message)*>

    上面的例子声明了(jin)Q?note" 元素可包含出现零ơ或多次?PCDATA?to"?from"?header" 或?"message"?br />

    ?DTD 中,属性通过 ATTLIST 声明来进行声明?/strong>

    声明属?/h2>

    属性声明拥使用下列语法Q?/p>

    <!ATTLIST 元素名称 属性名U?属性类?默认?gt;

    DTD 实例:

    <!ATTLIST payment type CDATA "check">

    XML 实例:

    <payment type="check" />

    以下?em>属性类?/em>的选项Q?/h3>
    cd 描述
    CDATA gؓ(f)字符数据 (character data)
    (en1|en2|..) 此值是枚D列表中的一个?/td>
    ID gؓ(f)唯一?id
    IDREF gؓ(f)另外一个元素的 id
    IDREFS gؓ(f)其他 id 的列?/td>
    NMTOKEN gؓ(f)合法?XML 名称
    NMTOKENS gؓ(f)合法?XML 名称的列?/td>
    ENTITY 值是一个实?/td>
    ENTITIES 值是一个实体列?/td>
    NOTATION 此值是W号的名U?/td>
    xml: 值是一个预定义?XML ?/td>

    默认值参数可使用下列|(x)

    ?/th> 解释
    ?/td> 属性的默认?/td>
    #REQUIRED 属性值是必需?/td>
    #IMPLIED 属性不是必需?/td>
    #FIXED value 属性值是固定?/td>

    规定一个默认的属性?/h2>

    DTD:

    <!ELEMENT square EMPTY>
    <!ATTLIST square width CDATA "0">

    合法?XML:

    <square width="100" />

    在上面的例子中,"square" 被定义ؓ(f)带有 CDATA cd?"width" 属性的I元素。如果宽度没有被讑֮Q其默认gؓ(f)0 ?/p>

    #IMPLIED

    语法

    <!ATTLIST 元素名称 属性名U?属性类?#IMPLIED>

    例子

    DTD:

    <!ATTLIST contact fax CDATA #IMPLIED>

    合法?XML:

    <contact fax="555-667788" />

    合法?XML:

    <contact />

    假如(zhn)不希望强制作者包含属性,q且(zhn)没有默认值选项的话Q请使用关键?#IMPLIED?/p>

    #REQUIRED

    语法

    <!ATTLIST 元素名称 属性名U?属性类?#REQUIRED>

    例子

    DTD:

    <!ATTLIST person number CDATA #REQUIRED>

    合法?XML:

    <person number="5677" />

    非法?XML:

    <person />

    假如(zhn)没有默认值选项Q但是仍然希望强制作者提交属性的话,请用关键词 #REQUIRED?/p>

    #FIXED

    语法

    <!ATTLIST 元素名称 属性名U?属性类?#FIXED "value">

    例子

    DTD:

    <!ATTLIST sender company CDATA #FIXED "Microsoft">

    合法?XML:

    <sender company="Microsoft" />

    非法?XML:

    <sender company="W3School" />

    如果(zhn)希望属性拥有固定的|q不允许作者改变这个|请?#FIXED 关键词。如果作者用了(jin)不同的|XML 解析器会(x)q回错误?/p>

    列D属性?/h2>

    语法Q?/h3>
    <!ATTLIST 元素名称 属性名U?(en1|en2|..) 默认?gt;

    DTD 例子:

    <!ATTLIST payment type (check|cash) "cash">

    XML 例子:

    <payment type="check" />

    或?/p>

    <payment type="cash" />

    如果(zhn)希望属性gؓ(f)一pd固定的合法g一Q请使用列D属性倹{?/p>

    实体是用于定义用于定义引用普通文本或Ҏ(gu)字符的快h式的变量?/strong>

    实体引用是对实体的引用?/strong>

    实体可在内部或外部进行声明?/strong>

    一个内部实体声?/h2>

    语法Q?/h3>
    <!ENTITY 实体名称 "实体的?>

    例子Q?/h3>

    DTD 例子:

    <!ENTITY writer "Bill Gates">
    <!ENTITY copyright "Copyright W3School.com.cn">

    XML 例子:

    <author>&writer;&copyright;</author>

    注释: 一个实体由三部分构? 一个和?(&), 一个实体名U? 以及(qing)一个分?(;)?/p>

    一个外部实体声?/h2>

    语法Q?/h3>
    <!ENTITY 实体名称 SYSTEM "URI/URL">

    例子Q?/h3>

    DTD 例子:

    <!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">
    <!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">

    XML 例子:

    <author>&writer;&copyright;</author>



    疯狂 2010-01-21 22:44 发表评论
    ]]>
    վ֩ģ壺 | ˳| | ɽ| | ̨| | üɽ| | ɾ| Զ| SHOW| | | κ| Ƕ| | ̨| | Ϫ| ˮ| »| | ƽ| | Ǩ| | | | ̨| | | ư| | ɾ| | ľ| ʯׯ| | | |