gpt4 book ai didi

xml - Eclipse - XML 模式定义

转载 作者:行者123 更新时间:2023-12-04 05:11:48 25 4
gpt4 key购买 nike

看着 http://www.eclipse.org/modeling/mdt/?project=xsd#xsd .我们有文字:

“XML Schema Definition 是一个引用库,它提供了一个 API,用于检查、创建或修改 W3C XML Schema(独立的或作为其他工件的一部分,例如 XForms 或 WSDL 文档)的任何代码。”

由此,我了解到我可以编写一个使用“XML 模式定义”API 的 Java 类来创建一个 XML 文件,并且这个创建的 XML 文件是我可以将其输入到 EMF 等工具中的文件。假设我的理解是正确的(如果不正确,请告诉我如何),我会去哪里找到此类 java 类的“hello world”类型示例?

最佳答案

XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
jxb:version="2.0">

<xsd:element name="Greetings" type="GreetingListType"/>
<xsd:complexType name="GreetingListType">
<xsd:sequence>
<xsd:element name="Greeting" type="GreetingType"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GreetingType">
<xsd:sequence>
<xsd:element name="Text" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="language" type="xsd:language"/>
</xsd:complexType>

</xsd:schema>

Java类:
import java.util.*;
import javax.xml.bind.*;
import hello.*;

public class Hello {

private ObjectFactory of;
private GreetingListType grList;

public Hello(){
of = new ObjectFactory();
grList = of.createGreetingListType();
}

public void make( String t, String l ){
GreetingType g = of.createGreetingType();
g.setText( t );
g.setLanguage( l );
grList.getGreeting().add( g );
}

public void marshal() {
try {
JAXBElement<GreetingListType> gl =
of.createGreetings( grList );
JAXBContext jc = JAXBContext.newInstance( "hello" );
Marshaller m = jc.createMarshaller();
m.marshal( gl, System.out );
} catch( JAXBException jbe ){
// ...
}
}

}

示例:
Hello h = new Hello();
h.make( "Bonjour, madame", "fr" );
h.make( "Hey, you", "en" );
h.marshal();

输出:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Greetings>
<Greeting language="fr">
<Text>Bonjour, madame</Text>
</Greeting>
<Greeting language="en">
<Text>Hey, you</Text>

关于xml - Eclipse - XML 模式定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14833604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com