[jboss-dev-forums] [Design of JBossXB] - Re: Referencing the bean-deployer namespace from a custom me

david.lloyd@jboss.com do-not-reply at jboss.com
Thu Jul 9 12:28:49 EDT 2009


OK, awesome, that worked.

One other thing - I have my root element set up to be propOrder={} and modelgroup=CHOICE.  I have two properties which are using XmlElements like this:


  |     public List<AbstractLoggerMetaData> getLoggerMetaDataList() {
  |         return loggerMetaDataList;
  |     }
  | 
  |     @XmlElements({
  |             @XmlElement(name = "root-logger", type = RootLoggerMetaData.class),
  |             @XmlElement(name = "logger", type = LoggerMetaData.class)
  |     })
  |     public void setLoggerMetaDataList(final List<AbstractLoggerMetaData> loggerMetaDataList) {
  |         this.loggerMetaDataList = loggerMetaDataList;
  |     }
  | 
  |     public List<AbstractHandlerMetaData> getHandlerMetaDataList() {
  |         return handlerMetaDataList;
  |     }
  | 
  |     @XmlElements({
  |             @XmlElement(name = "handler", type = HandlerMetaData.class),
  |             @XmlElement(name = "log4j-appender", type = Log4jAppenderMetaData.class),
  |             @XmlElement(name = "console-handler", type = ConsoleHandlerMetaData.class),
  |             @XmlElement(name = "file-handler", type = FileHandlerMetaData.class),
  |             @XmlElement(name = "periodic-rotating-file-handler", type = PeriodicRotatingFileHandlerMetaData.class),
  |             @XmlElement(name = "size-rotating-file-handler", type = SizeRotatingFileHandlerMetaData.class),
  |             @XmlElement(name = "async-handler", type = AsyncHandlerMetaData.class),
  |             @XmlElement(name = "null-handler", type = NullHandlerMetaData.class)
  |     })
  |     public void setHandlerMetaDataList(final List<AbstractHandlerMetaData> handlerMetaDataList) {
  |         this.handlerMetaDataList = handlerMetaDataList;
  |     }
  | 
  |     public List<InstallHandlerMetaData> getInstallHandlerMetaDataList() {
  |         return installHandlerMetaDataList;
  |     }
  | 
  |     @XmlElement(name = "install-handler")
  |     public void setInstallHandlerMetaDataList(final List<InstallHandlerMetaData> installHandlerMetaDataList) {
  |         this.installHandlerMetaDataList = installHandlerMetaDataList;
  |     }
  | 

But it gives me this error:


  | org.jboss.xb.binding.JBossXBRuntimeException: {urn:jboss:logging:6.0}logger cannot appear in this position. Expected content of {urn:jboss:logging:6.0}logging is choice: {choice}* {choice}* {urn:jboss:logging:6.0}install-handler*
  | 

I don't think this is correct behavior though.  The source XML looks like (comments removed):


  | <logging xmlns="urn:jboss:logging:6.0" xmlns:b="urn:jboss:bean-deployer:2.0">
  |    <periodic-rotating-file-handler
  |          file-name="${jboss.server.log.dir}/server.log"
  |          name="FILE"
  |          autoflush="true"
  |          append="true"
  |          suffix=".yyyy-MM-dd">
  |       <error-manager>
  |          <only-once/>
  |       </error-manager>
  | 
  |       <formatter>
  |          <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
  |       </formatter>
  |    </periodic-rotating-file-handler>
  | 
  |    <console-handler name="CONSOLE" autoflush="true" target="System.out">
  |       <error-manager>
  |          <only-once/>
  |       </error-manager>
  | 
  |       <level name="INFO"/>
  | 
  |       <formatter>
  |          <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
  |       </formatter>
  |    </console-handler>
  | 
  |    <logger category="org.apache">
  |       <level name="INFO"/>
  |    </logger>
  | 
  |    (a bunch more loggers follow)
  | 

So maybe it's treating the outer choice as maxOccurs=1 or something?  Is there something else I need to add?


View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4242670#4242670

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4242670



More information about the jboss-dev-forums mailing list