2009-04-10 4 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"); 

ОБНОВЛЕНИЕ

ОК - Я понимаю сейчас.

Попробуйте это:

<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

+0

Я обновил ответ - надеюсь, это поможет больше. –

0

Я не уверен, если это именно то, что вы просите, но лучший способ установить значение атрибутов или элементов с использованием XMLBeans является использование XMLBeans-сгенерированные методы получения и установки.

Может быть, немного больше контекста для вашего вопроса с курсором было бы полезно.

Смежные вопросы