2009-04-10 72 views
0

我的XSD文件包括:XMLBeans的 - 複雜類型的集內容

   <xs:sequence> 
        <xs:element name="Book"> 
         <xs:complexType> 
          <xs:attribute name="author" type="xs:string" /> 
          <xs:attribute name="title" type="xs:string" /> 
         </xs:complexType> 
        </xs:element> 
       </xs:sequence> 

使用XMLBeans,我可以很容易地設置屬性使用:

Book book= books.addNewBook(); 
    book.setTitle("The Lady and a Little Dog"); 

我知道,我可以使用newCursor()設置元素的內容,但這是最好的方法嗎?

object.newCursor().setTextValue(builer.toString()); 

回答

1

我不太明白你的問題。

我覺得你的XSD會給你的Java類生成XML這樣的:

<book author="Fred" title="The Lady and a Little Dog" /> 

你的意思是你想設置的XML元素中的「內部」的文字,所以你最終與XML一樣這個?

<book> 
    <author>Fred</author> 
    <title>The Lady and a Little Dog</title> 
</book> 

如果是這樣,你的XSD改變這一點,使用嵌套元素,而不是屬性:

<xs:sequence> 
    <xs:element name="Book"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="author" type="xs:string" /> 
      <xs:element name="title" type="xs:string" /> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
</xs:sequence> 

然後你就只是能夠做到:

Book book= books.addNewBook(); 
book.setAuthor("Fred"); 
book.setTitle("The Lady and a Little Dog"); 

UPDATE

好的 - 我現在明白了。

試試這個:

<xs:element name="Book" minOccurs="0" maxOccurs="unbounded"> 
    <xs:complexType> 
    <xs:simpleContent> 
     <xs:extension base="xs:string"> 
     <xs:attribute name="author" type="xs:string" /> 
     <xs:attribute name="title" type="xs:string" /> 
     </xs:extension> 
    </xs:simpleContent> 
    </xs:complexType>  
</xs:element> 

然後:

Book book1 = books.addNewBook(); 
    book1.setAuthor("Fred"); 
    book1.setTitle("The Lady and a Little Dog"); 
    book1.setStringValue("This is some text"); 

    Book book2 = books.addNewBook(); 
    book2.setAuthor("Jack"); 
    book2.setTitle("The Man and a Little Cat"); 
    book2.setStringValue("This is some more text"); 

應該給這樣的XML,我認爲這是你想要什麼:

<Book author="Fred" title="The Lady and a Little Dog">This is some text</Book> 
<Book author="Jack" title="The Man and a Little Cat">This is some more text</Book> 
+0

這是我會像我的xml看起來像: 這是一些文字 我怎樣才能把」這是一些文字「位? 謝謝 – dogbane 2009-05-20 12:10:04

0

我不知道這是否是你問什麼,而是要設置屬性或使用XMLBeans的要素價值的最佳方法是使用XMLBeans的生成getter和setter。

也許你的光標問題稍微多一點上下文會有幫助。